Що стосується коду на стороні клієнта , ви робите правильно. 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 ...так що, здавалося, це не спрацювало