W przypadku kodu po stronie klienta robisz właściwą rzecz. babelifyi 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-clii babel-preset-es2015.
$ npm install --save-dev babel-cli babel-preset-es2015
Dodaj transformację do swojego .babelrcpliku - 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 buildskrypt do swojego package.json. Poniżej srcznajdują się pliki wejściowe i buildprzekształ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 buildkatalogu
$ 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.jsUnexpected reserved word: import ...