Szukaj…


Wprowadzenie

Transpozycja to proces tłumaczenia niektórych języków programowania i tłumaczenia go na określony język docelowy. W tym kontekście transpilowanie weźmie języki kompilacji do JS i przetłumaczy je na język docelowy Javascript.

Uwagi

Transpilowanie to proces przekształcania kodu źródłowego w kod źródłowy, co jest powszechną czynnością w rozwoju JavaScript.

Funkcje dostępne w popularnych aplikacjach JavaScript (Chrome, Firefox, NodeJS itp.) Często pozostają w tyle za najnowszymi specyfikacjami ECMAScript (ES6 / ES2015, ES7 / ES2016 itp.). Po zatwierdzeniu specyfikacji z pewnością będzie ona dostępna natywnie w przyszłych wersjach aplikacji JavaScript.

Zamiast czekać na nowe wersje JavaScript, inżynierowie mogą zacząć pisać kod, który będzie działał natywnie w przyszłości (zabezpieczenie na przyszłość), za pomocą kompilatora do konwersji kodu napisanego dla nowszych specyfikacji na kod kompatybilny z istniejącymi aplikacjami. Popularne transpilatory to Babel i Google Traceur .

Transpilatorów można również używać do konwersji z innego języka, takiego jak TypeScript lub CoffeeScript, na zwykły JavaScript „waniliowy”. W takim przypadku transpozycja konwertuje z jednego języka na inny język.

Wprowadzenie do transpozycji

Przykłady

ES6 / ES2015 do ES5 (przez Babel ) :

Ta składnia ES2015

// ES2015 arrow function syntax 
[1,2,3].map(n => n + 1); 

jest interpretowany i tłumaczony na tę składnię ES5:

// Conventional ES5 anonymous function syntax 
[1,2,3].map(function(n) {   
    return n + 1; 
});

CoffeeScript na JavaScript (poprzez wbudowany kompilator CoffeeScript) :

Ten CoffeeScript

# Existence:
alert "I knew it!" if elvis?

jest interpretowane i tłumaczone na JavaScript:

if (typeof elvis !== "undefined" && elvis !== null) {
  alert("I knew it!");
}

Jak dokonać transpozycji?

Większość języków kompilacji do Javascript ma wbudowany transpiler (jak w CoffeeScript lub TypeScript). W takim przypadku może być konieczne włączenie transpilatora języka za pomocą ustawień konfiguracji lub pola wyboru. Ustawienia zaawansowane można również ustawić w odniesieniu do transpilatora.

W transponowaniu ES6 / ES2016-na-ES5 najbardziej popularnym transpilatorem jest Babel .


Dlaczego powinienem dokonać transpozycji?

Najczęściej cytowane korzyści to:

  • Możliwość niezawodnego korzystania z nowszej składni
  • Kompatybilność z większością, jeśli nie wszystkimi przeglądarkami
  • Wykorzystanie brakujących / jeszcze nie macierzystych funkcji w Javascript za pomocą języków takich jak CoffeeScript lub TypeScript

Zacznij używać ES6 / 7 z Babel

Obsługa przeglądarki ES6 rośnie, ale aby mieć pewność, że Twój kod będzie działał w środowiskach, które go w pełni nie obsługują, możesz użyć Babel , transpilatora ES6 / 7 do ES5, wypróbuj!

Jeśli chcesz używać ES6 / 7 w swoich projektach bez martwienia się o kompatybilność, możesz użyć interfejsu Node i Babel CLI


Szybka konfiguracja projektu z obsługą Babel dla ES6 / 7

  1. Pobierz i zainstaluj Węzeł
  2. Przejdź do folderu i utwórz projekt za pomocą swojego ulubionego narzędzia wiersza poleceń
~ npm init
  1. Zainstaluj Babel CLI
~ npm install --save-dev babel-cli
~ npm install --save-dev babel-preset-es2015
  1. Utwórz folder scripts do przechowywania plików .js , a następnie folder dist/scripts którym zostaną zapisane w pełni kompatybilne pliki.
  2. Utwórz plik .babelrc w folderze głównym swojego projektu i zapisz go na nim
{
    "presets": ["es2015"]
}
  1. Zmodyfikuj plik package.json (utworzony po uruchomieniu npm init ) i dodaj skrypt build do właściwości scripts :
{
    ...
    "scripts": {
    ... ,
    "build": "babel scripts --out-dir dist/scripts"
    },
    ...
}
  1. Miłego programowania w ES6 / 7
  2. Wykonaj następujące czynności, aby przełożyć wszystkie pliki na ES5
~ npm run build

W przypadku bardziej złożonych projektów warto przyjrzeć się Gulp lub Webpack



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow