Що стосується коду на стороні клієнта , ви робите правильно. babelify
його і відправити клієнту.
Для коду на стороні сервера я б просто зробив звичайну збірку, використовуючи babel-cli
За http://babeljs.io/docs/setup/#babel_register , babel-register
це не призначений для використання в виробництві - Гачок в першу чергу рекомендуються для простих випадків потрібно.
для Babel 6+
Станом на Babel 6 за замовчуванням жодні перетворення не включаються. Отже, почнемо з встановлення babel-cli
та babel-preset-es2015
.
$ npm install --save-dev babel-cli babel-preset-es2015
Додайте перетворення до свого .babelrc
файлу - це перший модуль, який ми завантажили вище. Погляньте на повний список попередньо встановлених налаштувань, щоб побачити, які з них найкраще підходять для вас.
{
"presets": ["es2015"]
}
Додайте build
скрипт до вашого package.json
. Нижче наведені src
ваші вхідні файли та build
трансформовані вихідні файли
"scripts": {
"build": "babel src -d build"
}
Тоді побудуйте його!
$ npm run build
Потім запустіть свій код. На цьому етапі ви захочете виконати файли у своєму build
каталозі
$ npm start
для Babel <= 5, просто скористайтеся гачком require.
require("babel/register");
Усі наступні файли, необхідні вузлу з розширеннями .es6 , .es , .jsx та .js, будуть перетворені Babel. Polyfill також автоматично потрібно.
Ви зможете зберігати вихідні файли в ES6, але все одно виконувати їх за допомогою node server.js
Згідно з вашими коментарями, у вас, здається, виникають невеликі проблеми. Зверніть особливу увагу на жовту виділену частину вище. Першим вашим файлом може бути лише ES5, який запускається самим вузлом. Усі наступні вимоги будуть перетворені Babel ...
Ось як може виглядати типова установка
server.js
require("babel/register");
var app = require("./app.js");
app.js
розпаліть!
$ node server.js
require("babel/register");
мій server.js, і коли я запускаю,node server.js
я отримую помилку:Unexpected reserved word: import ...
так що, здавалося, це не спрацювало