Impossible d'exécuter babel via npm script “babel: command not found”
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
Ici est mon colis.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 .babelrc fichier:
{
"presets": ["es2015", "stage-0"]
}
Mon fichier de structure comme ceci:
- Root
- src
- client
- server
- test
- dist
- package.json
Je fais appel mnp exécuter construire à partir du dossier racine. Je m'attends à compiler les sources de dossier dans le dossier dist. Il s'exécute, et puis j'ai 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! redacted@1.0.0 build: `babel src -d dist`
npm ERR! spawn ENOENT
npm ERR!
npm ERR! Failed at the redacted@1.0.0 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
Donc, comme vous pouvez le voir, j'ai installé babel-cli, je l'ai installé les presets, et je pense que tout est en ordre selon la babel docs.
Quelqu'un a des idées sur pourquoi il ne serait pas de travail? Pourrais-je être absente de babel mnp fichier? Est "babel src -d dist" incorrect?
Merci pour toute aide que vous pouvez fournir!
J'ai fait un autre dossier, et a suivi les mêmes étapes, il a parfaitement fonctionné. Pour une raison qu'il ne fonctionne pas dans ce répertoire.
oui, j'ai! Pour chacun, je n'ai mnp installer et à utiliser --save-dev
OriginalL'auteur Justin | 2016-03-19
Vous devez vous connecter pour publier un commentaire.
Avez-vous l'exécutez "npm install" pour installer les paquets dev?
Pourriez-vous liste le dossier node_modules? Et l' ./node_modules/.bin? ls-l node_modules et ls-l ./node_modules/.bin
Yep, c'est une assez grande liste donc je l'ai mis sur pastebin: pastebin.com/WVkWnixf @.xie
On dirait que vous n'avez pas de babel lnk fichier sous ./node_module/.bin/ babel -> ../babel-cli/bin/babel.js*
Suppression de nœud dossier des modules d'une réinstallation de tout a fonctionné.. si je ne suis pas sûr pourquoi? Merci beaucoup pour votre aide.
OriginalL'auteur
J'ai rencontré le même problème dernièrement. Retrait du dossier node_modules et en cours d'exécution
npm install
encore plus résout le problème.La raison pour laquelle vous obtenez cette erreur est parce que babel-cli doit être installé à l'échelle mondiale, non pas comme un projet de dépendance.
Exécuter
npm install -g babel-cli
de l'installer à l'échelle mondiale.Babel-preset-es2015 peut alors être installé en tant que dev dépendance pour vos projets
npm install --save-dev babel-preset-es2015
npm uninstall --global babel-cli
si vous ne l'avez installé à l'échelle mondiale. Dans leurs paroles, c'est parce que: 1. projets Différents sur la même machine peut dépendre sur les différentes versions de Babel vous permettant de mettre à jour une à une. 2. Cela signifie que vous ne disposez pas d'un implicite de la dépendance sur l'environnement dans lequel vous travaillez. Faire de votre projet beaucoup plus portable et le plus facile à installer.Ce n'est pas une bonne pratique pour l'utilisation d'une installation globale de
babel-cli
, outre le retrait de lanode_modules
dossier et en cours d'exécutionnpm install
résout le problèmeOriginalL'auteur
Vous devriez ne jamais installer de babel-cli dans le monde - en fait, ils en particulier l'ensemble d'un paragraphe, dites-vous de ne pas de leur documentation.
Modifier
package.json
>> ajouter un script avec la clé appelée, disons,build
avec la valeur./node_modules/.bin/babel <commands>
Si vous l'avez appelé
build
, il suffit alors de typenpm run build
.OriginalL'auteur
L'erreur se produit car
./node_modules/.bin
n'est pas dans$PATH
../node_modules/.bin
est l'endroit où tous les exécutables binaires peut être trouvé.Comme recommandé par le la documentation, vous pouvez faire référence à la
babel
de la cli à l'intérieur denode_modules
:Vous pouvez modifier votre
npm run build
commande à utiliser ceci:J'ai essayé et en fait, je continue de recevoir exactement la même erreur. J'ai regardé à l'intérieur du dossier bin et il n'y a rien là-dedans avec le nom "babel"
OriginalL'auteur
Beaucoup de réponses ci-dessus sont correctes.
Ce que j'ai fait, j'ai construit une dynamique simple fonction alias dans mon zshrc fichier.
Maintenant, vous pouvez utiliser
bbl
au lieu de babelOriginalL'auteur