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
- Pobierz i zainstaluj Węzeł
- Przejdź do folderu i utwórz projekt za pomocą swojego ulubionego narzędzia wiersza poleceń
~ npm init
- Zainstaluj Babel CLI
~ npm install --save-dev babel-cli
~ npm install --save-dev babel-preset-es2015
- Utwórz folder
scripts
do przechowywania plików.js
, a następnie folderdist/scripts
którym zostaną zapisane w pełni kompatybilne pliki. - Utwórz plik
.babelrc
w folderze głównym swojego projektu i zapisz go na nim
{
"presets": ["es2015"]
}
- Zmodyfikuj plik
package.json
(utworzony po uruchomieniunpm init
) i dodaj skryptbuild
do właściwościscripts
:
{
...
"scripts": {
... ,
"build": "babel scripts --out-dir dist/scripts"
},
...
}
- Miłego programowania w ES6 / 7
- 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