Pour le code côté client , vous faites la bonne chose. babelify
et expédiez-le au client.
Pour le code côté serveur , je ferais juste une construction régulière en utilisant babel-cli
Selon http://babeljs.io/docs/setup/#babel_register , babel-register
n'est pas destiné à une utilisation en production - Le hook require est principalement recommandé pour les cas simples.
pour Babel 6+
Depuis Babel 6, aucune transformation n'est incluse par défaut. Commençons donc par installer babel-cli
et babel-preset-es2015
.
$ npm install --save-dev babel-cli babel-preset-es2015
Ajoutez une transformation à votre .babelrc
fichier - c'est le module perst que nous avons téléchargé ci-dessus. Jetez un œil à la liste complète des préréglages pour voir lequel (s) vous convient le mieux.
{
"presets": ["es2015"]
}
Ajoutez un build
script à votre package.json
. Voici src
vos fichiers d'entrée et build
les fichiers de sortie transformés
"scripts": {
"build": "babel src -d build"
}
Alors construisez-le!
$ npm run build
Ensuite, exécutez votre code. À ce stade, vous voudrez exécuter les fichiers de votre build
répertoire
$ npm start
pour Babel <= 5, utilisez simplement le hook require.
require("babel/register");
Tous les fichiers suivants requis par le nœud avec les extensions .es6 , .es , .jsx et .js seront transformés par Babel. Le polyfill est également automatiquement requis.
Vous pourrez conserver vos fichiers source dans ES6 tout en les exécutant en utilisant node server.js
D'après vos commentaires, vous semblez avoir un peu de mal. Faites particulièrement attention à la partie surlignée en jaune ci-dessus. Votre premier fichier ne peut être que ES5, qui est exécuté par le nœud lui-même. Tous les besoins ultérieurs seront transformés par Babel ...
Voici à quoi pourrait ressembler une configuration typique
server.js
require("babel/register");
var app = require("./app.js");
app.js
mets le feu!
$ node server.js
require("babel/register");
dans mes server.js et quand je lance quenode server.js
je reçois l'erreur:Unexpected reserved word: import ...
il ne semble pas fonctionner