J'utilise le require hook de BabelJS (anciennement nommé 6to5) pour exécuter des applications de nœud avec es6features :
// run.js
require("babel/register");
require("./app.js6");
J'appelle node run.js
pour exécuter mon app.js6 . J'ai besoin d'installer BabelJS et de fournir un run.js pour chaque projet que j'aimerais utiliser es6features. Je préférerais un appel comme nodejs6 app.js6
. Comment puis-je obtenir ce système indépendamment (Unix et Windows)?
Ajoutez les dépendances babel-cli
et babel-preset-es2015
(autrement dit ES6) au fichier package.json de votre application et définissez un script start
:
{
"dependencies": {
"babel-cli": "^6.0.0",
"babel-preset-es2015": "^6.0.0"
},
"scripts": {
"start": "babel-node --presets es2015 app.js"
}
}
Ensuite, vous pouvez simplement exécuter la commande suivante pour exécuter votre application:
npm start
Si vous décidez de ne plus utiliser Babel (par exemple, une fois que Node.js aura pris en charge toutes les fonctionnalités de l’ES6), vous pouvez simplement le supprimer de package.json:
{
"dependencies": {},
"scripts": {
"start": "node app.js"
}
}
L'un des avantages de cette méthode est que la commande permettant d'exécuter votre application reste la même, ce qui est utile si vous travaillez avec d'autres développeurs.
Comment configurer l'application node.js avec le support es6 et le rechargement du serveur lors de la modification du fichier .
1. Allez dans le terminal dans le répertoire principal de votre projet
npm init
// crée package.json pour le projet
Dépendances 2.Install
npm install --save-dev babel
npm install --save-dev babel-cli
npm install --save-dev babel-preset-es2015
npm install --save-dev babel-preset-stage-0 //*1
npm install --save-dev nodemon
1 - cela peut aussi être l'étape 1 ou 2, cela dépend des caractéristiques de es Nous voulons utiliser
3.Nous devrions avoir dans le fichier package.json quelque chose comme ça (bien sûr la version du paquet sera différente mais ça ira):
"devDependencies": {
"babel": "^6.5.2",
"babel-cli": "^6.16.0",
"babel-preset-es2015": "^6.16.0",
"babel-preset-stage-0": "^6.16.0",
"nodemon": "^1.11.0"
}
4.Créez le fichier .babelrc dans le répertoire racine du projet (fichier package.json)
{
"presets": ["es2015", "stage-0"]
}
5.Créez deux répertoires:
src - voici le répertoire de travail avec les fichiers écrits dans es6
dist - ici, les fichiers seront compilés en es5 à l'aide de babel
Le répertoire racine de votre projet devrait ressembler à ceci:
7.Ajouter à package.json les commandes nécessaires:
"scripts": {
"watch": "babel -w src/ -d dist/",
"build": "babel src/ -d dist/",
"serve": "babel -w src/ -d dist/ | nodemon --watch dist",
"test": "echo \"Error: no test specified\" && exit 1"
}
8. Commandes disponibles:
npm run watch
// lance l'observation de la montre dans le répertoire src et la compile pour la dist
npm run build
// compile les fichiers du répertoire src vers dist
npm run serve
// il surveille et démarre le serveur de nœud. À chaque changement de fichier, il redémarre le serveur de nœud à l'aide de nodemon qui surveille les modifications du répertoire dist.
9. Notes finales
10.Exécutez le serveur et commencez à créer une application dans le répertoire src .
npm run serve
Si le nombre de points est trop élevé pour vous, alors le message est complet sur github - https://github.com/maciejsikora/node-express-babel-boilerplate .
Vous pouvez utiliser le noeud avec l'indicateur --harmony pour exécuter un script avec les fonctionnalités es6
node -r babel-register scripts.js
C'est la meilleure solution
npx babel-node scripts.js
! Le noeud Babel ne fonctionne pas bien en cas de processus de sortie et le paquet kexec
n'aide pas non plus dans ce cas (comme j'ai essayé)
Dans les deux cas, vous devez utiliser .babelrc
qui devrait décrire les préréglages et les plugins de votre application.
npx
utilise uniquement pour l'exécution de bibliothèques qui ne sont pas installées avec npm
ou yarn
. Sinon, vous devez npm i -g babel-cli
puis babel-node script.js
vous devez installer babel-register
et babel-preset-es2015
prédéfini Quelles options ont été utilisées dans _babel-register
_ pour activer En converti _ES6
_ à _ES5
_ transpilation à la volée
_ npm install babel-register
npm install babel-preset-es2015
_
votre fichier run.js :
_// require babel-register and set Babel presets options to es2015
require('babel-register')({
presets: [ 'es2015' ]
});
require("./app.js6");
_
Remarque : Maintenant, vous n'avez plus besoin du fichier _.babelrc
_ pour configurer Babel presets
avec la méthode require
Je préférerais un appel comme
nodejs6 app.js6
.
Vous pouvez essayer la solution d'emballage avec babi-core api:
// Save as es6.js
var babel = require("babel-core");
var argc = process.argv.length;
babel.transformFile(process.argv[argc - 1], function (err, result) {
eval(result.code);
});
Exécutez votre script en vedette es6 avec node es6 thefile.js
Référence : offical document d'utilisation
À partir de babel 6, vous devez maintenant installer babel-register
et utiliser le programme suivant.
require("babel-register");
Veillez également à installer le préréglage babel es2015.