Pour commencer j'ai couru:
npm install --save-dev babel-cli
npm install --save-dev babel-preset-es2015
npm install --save-dev babel-preset-stage-0
Voici mon package.json:
{
"scripts": {
"build": "babel src -d dist"
},
"devDependencies": {
"babel-cli": "^6.6.5",
"babel-core": "^6.7.2",
"babel-preset-es2015": "^6.6.0",
"babel-preset-stage-0": "^6.5.0"
}
}
Voici mon fichier .babelrc:
{
"presets": ["es2015", "stage-0"]
}
Ma structure de fichier est comme ceci:
- Root
- src
- client
- server
- test
- dist
- package.json
J'appelle npm run build à partir du dossier racine. Je m'attends à ce qu'il compile le dossier source dans le dossier dist. Il fonctionne et puis j'obtiens cette erreur:
> babel src -d dist
sh: babel: command not found
npm ERR! Darwin 15.2.0
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "run" "build"
npm ERR! node v5.8.0
npm ERR! npm v3.7.3
npm ERR! file sh
npm ERR! code ELIFECYCLE
npm ERR! errno ENOENT
npm ERR! syscall spawn
npm ERR! [email protected] build: `babel src -d dist`
npm ERR! spawn ENOENT
npm ERR!
npm ERR! Failed at the [email protected] build script 'babel src -d dist'.
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 redacted package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR! babel src -d dist
npm ERR! You can get information on how to open an issue for this project with:
npm ERR! npm bugs redacted
npm ERR! Or if that isn't available, you can get their info via:
npm ERR! npm owner ls redacted
npm ERR! There is likely additional logging output above.
npm ERR! Please include the following file with any support request:
npm ERR! /Users/user/redacted/npm-debug.log
Comme vous pouvez le constater, j’ai installé babel-cli, j’ai installé les préréglages et je pense que tout est en ordre, conformément à la documentation de babel.
Quelqu'un a-t-il des idées sur les raisons pour lesquelles cela ne fonctionnerait pas? Est-ce que je pourrais manquer un fichier babel npm? "Babel src -d dist" est-il incorrect?
Merci pour toute l'aide que vous pourrez fournir!
Je fis un autre dossier et suivis les mêmes étapes, cela fonctionnait parfaitement. Pour une raison quelconque, cela ne fonctionne pas dans ce répertoire.
Avez-vous exécuté "npm install" pour installer les packages de développement?
J'ai rencontré le même problème récemment. Supprimer le dossier node_modules et exécuter à nouveau npm install
ne résout plus le problème.
Vous obtenez cette erreur parce que babel-cli doit être installé de manière globale et non comme une dépendance de projet.
Exécutez npm install -g babel-cli
pour l'installer globalement.
Babel-preset-es2015 peut ensuite être installé en tant que dépendance de développement pour vos projets npm install --save-dev babel-preset-es2015
Vous ne devriez jamais installer babel-cli dans le monde entier - en fait, ils ont spécifiquement un paragraphe entier vous disant de ne pas de leurs documents officiels.
Editez package.json
>> ajoutez un script avec la clé appelée, par exemple, build
avec la valeur ./node_modules/.bin/babel <commands>
Si vous l'avez appelé build
, tapez alors npm run build
.
L'erreur se produit parce que ./node_modules/.bin
n'est pas dans $PATH
. ./node_modules/.bin
est l'endroit où tous les fichiers binaires exécutables peuvent être trouvés.
Comme recommandé par documentation , vous pouvez référencer la babel
cli dans node_modules
:
$ ./node_modules/.bin/babel src -d lib
Vous pouvez modifier votre commande npm run build
pour utiliser ceci:
"scripts": {
"build": "./node_modules/.bin/babel src -d dist"
},
Bon nombre des réponses ci-dessus sont correctes.
L'erreur se produit car ./node_modules/.bin n'est pas dans
$PATH
../node_modules/.bin
est l'endroit où tous les fichiers binaires exécutables peuvent être trouvés.
Ce que j'ai fait est de créer une fonction d'alias dynamique simple dans mon fichier zshrc.
# Babel
function bbl() {
./node_modules/.bin/babel "$@"
}
Maintenant, vous pouvez utiliser bbl
au lieu de babel
bbl --version
6.24.1 (babel-core 6.25.0)