web-dev-qa-db-fra.com

Comment exécuter l'application Node.js avec les fonctionnalités ES6 activées?

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)?

67
maiermic

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.

129

Comment configurer l'application node.js avec le support es6 et le rechargement du serveur lors de la modification du fichier .


Etapes de configuration (création d'un projet à partir de rien):

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:

  • projet
    • src
      • index.js // fichier de projet principal
    • dist
    • package.json
    • .babelrc

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

  • Le serveur exécutera le fichier dist/index.js en tant que fichier principal.
  • Le fichier dist/index.js sera compilé à partir de src/index.js, il devrait donc y avoir le fichier principal du projet.
  • le répertoire dist doit être ajouté pour être ignoré par git (mais ne l'ignorez pas pour npm s'il s'agira d'un paquet de nœud)

10.Exécutez le serveur et commencez à créer une application dans le répertoire src .

npm run serve

II. Manière plus facile (prêt à l'emploi)

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 .

36
Maciej Sikora

Vous pouvez utiliser le noeud avec l'indicateur --harmony pour exécuter un script avec les fonctionnalités es6

16
Safi
  1. node -r babel-register scripts.js

C'est la meilleure solution

  1. 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

6
SerzN1

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

6
ahmed hamdy

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

3
Jiahao D.
1
Priyanshu Chauhan

À 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.

1
Chiedo