Untuk kode sisi klien , Anda melakukan hal yang benar. babelify
dan mengirimkannya ke klien.
Untuk kode sisi server , saya hanya akan melakukan build biasa menggunakan babel-cli
Menurut http://babeljs.io/docs/setup/#babel_register , babel-register
ini tidak dimaksudkan untuk penggunaan produksi - Hook Requirement terutama disarankan untuk kasus sederhana.
untuk Babel 6+
Mulai Babel 6, tidak ada transformasi yang disertakan secara default. Jadi mari kita mulai dengan menginstal babel-cli
dan babel-preset-es2015
.
$ npm install --save-dev babel-cli babel-preset-es2015
Tambahkan transformasi ke .babelrc
file Anda - ini adalah modul perst yang kami unduh di atas. Lihat daftar lengkap preset untuk melihat mana yang paling cocok untuk Anda.
{
"presets": ["es2015"]
}
Tambahkan build
skrip ke package.json
. Di bawah src
ini adalah file masukan Anda danbuild
file output yang diubah
"scripts": {
"build": "babel src -d build"
}
Lalu bangunlah!
$ npm run build
Kemudian jalankan kode Anda. Pada titik ini, Anda ingin menjalankan file di filebuild
direktori
$ npm start
untuk Babel <= 5, cukup gunakan hook yang dibutuhkan.
require("babel/register");
Semua file selanjutnya yang dibutuhkan oleh node dengan ekstensi .es6 , .es , .jsx dan .js akan diubah oleh Babel. Itu polyfill juga secara otomatis diperlukan.
Anda akan dapat menyimpan file sumber Anda di ES6 tetapi tetap menjalankannya menggunakan node server.js
Menurut komentar Anda, Anda tampaknya mengalami sedikit masalah. Beri perhatian khusus pada bagian yang disorot kuning di atas. File pertama Anda hanya bisa ES5, yang dijalankan oleh node itu sendiri. Semua kebutuhan selanjutnya akan diubah oleh Babel ...
Seperti inilah tampilan penyiapan biasanya
server.js
require("babel/register");
var app = require("./app.js");
app.js
nyalakan!
$ node server.js
require("babel/register");
server.js saya dan ketika saya menjalankannode server.js
saya mendapatkan kesalahan:Unexpected reserved word: import ...
jadi sepertinya tidak berfungsi