W przypadku kodu po stronie klienta robisz właściwą rzecz. babelify
i wyślij do klienta.
W przypadku kodu po stronie serwera po prostu zrobiłbym zwykłą kompilację przy użyciu babel-cli
Według http://babeljs.io/docs/setup/#babel_register , niebabel-register
jest przeznaczony do użytku produkcyjnego - Wymagany hak jest zalecany przede wszystkim w prostych przypadkach.
dla Babel 6+
Od wersji Babel 6 żadne transformacje nie są domyślnie uwzględniane. Zacznijmy więc od zainstalowania babel-cli
i babel-preset-es2015
.
$ npm install --save-dev babel-cli babel-preset-es2015
Dodaj transformację do swojego .babelrc
pliku - to jest moduł końcowy, który pobraliśmy powyżej. Zapoznaj się z pełną listą ustawień wstępnych, aby zobaczyć, które z nich najlepiej Ci odpowiadają.
{
"presets": ["es2015"]
}
Dodaj build
skrypt do swojego package.json
. Poniżej src
znajdują się pliki wejściowe i build
przekształcone pliki wyjściowe
"scripts": {
"build": "babel src -d build"
}
Następnie zbuduj to!
$ npm run build
Następnie uruchom kod. W tym momencie będziesz chciał wykonywać pliki w swoim build
katalogu
$ npm start
dla Babel <= 5, po prostu użyj haka require.
require("babel/register");
Wszystkie kolejne pliki wymagane przez węzeł z rozszerzeniami .es6 , .es , .jsx i .js zostaną przekształcone przez Babel. Polyfill jest również automatycznie wymagane.
Będziesz mógł zachować swoje pliki źródłowe w ES6, ale nadal wykonywać je za pomocą node server.js
Z twoich komentarzy wynika, że masz małe kłopoty. Zwróć szczególną uwagę na zaznaczoną na żółto część powyżej. Pierwszym plikiem może być tylko plik ES5, który jest uruchamiany przez sam węzeł. Wszystkie kolejne wymagania zostaną przekształcone przez Babel ...
Oto, jak może wyglądać typowa konfiguracja
server.js
require("babel/register");
var app = require("./app.js");
app.js
odpal to!
$ node server.js
require("babel/register");
node server.js
Unexpected reserved word: import ...