web-dev-qa-db-fra.com

L'exécution de babel-cli à partir du script npm ne fonctionne pas

J'ai suivi les instructions ici pour installer babel-cli. J'ai ajouté "build": "babel src -d lib" à mon package.json dans le répertoire dans lequel je veux l'exécuter. Cependant, lors de l'exécution, le message d'erreur suivant s'affiche:

????  npm run build

> [email protected] build /Users/richard/src/ipfs-readme-standard
> babel src -d lib

src doesn't exist

npm ERR! Darwin 14.5.0
npm ERR! argv "/Users/richard/.nvm/versions/node/v5.0.0/bin/node" "/Users/richard/.nvm/versions/node/v5.0.0/bin/npm" "run" "build"
npm ERR! node v5.0.0
npm ERR! npm  v3.5.2
npm ERR! code ELIFECYCLE
npm ERR! [email protected] build: `babel src -d lib`
npm ERR! Exit status 2
npm ERR! 
npm ERR! Failed at the [email protected] build script 'babel src -d lib'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the ipfs-readme-standard package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     babel src -d lib
npm ERR! You can get information on how to open an issue for this project with:
npm ERR!     npm bugs ipfs-readme-standard
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!     npm owner ls ipfs-readme-standard
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR!     /Users/richard/src/ipfs-readme-standard/npm-debug.log

Je suis à perte. Src ne devrait pas être généré? Il n'y a pas d'étape supplémentaire sur babeljs.io qui me manque. 

10
RichLitt

Src ne devrait pas être généré? 

C'est le dossier qui contient le script que vous voulez transpiler. Si cela n’existe pas, Babel lâchera l’erreur que vous avez signalée.

Prenez également note de ce qui est écrit au bas de la page à laquelle vous avez accédé: 

Avant la version 6.x, Babel permettait certaines transformations par défaut. Toutefois, Babel 6.x n’est livré avec aucune transformation activée. Vous devez lui indiquer explicitement les transformations à exécuter. Le moyen le plus simple consiste à utiliser un préréglage, tel que le préréglage ES2015.

Cela signifie que même si vous créez un répertoire src et y placez un fichier contenant du code ES6, Babel s'exécutera avec plaisir, mais la sortie sera (presque) identique à l'entrée.


Voici un exemple rapide montrant comment utiliser le babel-cli.

Créez un projet, puis installez le paquet babel-cli et le préréglage ES2015:

mkdir babeltest && cd babeltest
touch package.json
npm install babel-cli babel-preset-es2015 --save-dev

Prochaine édition package.json:

{
  "name": "my-project",
  "version": "1.0.0",
  "scripts": {
    "build": "babel src -d lib"
  },
  "scripts": {
    "build": "babel --presets es2015 src -d lib"
  },
  "devDependencies": {
    "babel-cli": "^6.0.0"
  }
}

Notez que la commande dans les scripts npm est légèrement différente de celle de la page d'accueil babel , dans la mesure où nous lui disons d'utiliser les préréglages installés.

Créez ensuite un fichier dans le répertoire src:

mkdir src && cd src
touch main.js

Dans main.js, ajoutez:

[1,2,3].map(x => x * x)

Puis lancez babel via npm:

npm run build

Et inspectez la sortie dans lib/main.js

"use strict";

[1, 2, 3].map(function (x) {
  return x * x;
});
27
James Hibbard

Si quelqu'un cherche toujours une solution, vérifiez si .babelrc est manquant Si c'est le cas, créez simplement un nouveau fichier .babelrc et collez-y l'extrait de code.

{
  "presets": ["es2015", "stage-0"]
}
1
cr33dix

Vous obtenez également cette erreur lorsque vos modules de nœud ne sont pas installés. Si vous téléchargez le code sur Internet et essayez immédiatement de l'exécuter, il génère l'erreur ci-dessus.

npm install

et alors

npm run build // ou d'autres commandes devraient fonctionner

0
Ignatius Andrew