无法通过npm脚本运行babel“babel:command not found”
要开始我跑了:
npm install --save-dev babel-cli npm install --save-dev babel-preset-es2015 npm install --save-dev babel-preset-stage-0
这是我的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" } }
这是我的.babelrc文件:
{ "presets": ["es2015", "stage-0"] }
我的文件结构是这样的:
- Root - src - client - server - test - dist - package.json
我从根文件夹调用npm run build。 我期待它将源文件夹编译到dist文件夹中。 它运行,然后我得到这个错误:
> 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
所以,你可以看到,我已经安装了babel-cli,我已经安装了预设,我认为一切都按照babel文档。
有没有人有想法,为什么它不会工作? 我可以错过一个babel npm文件吗? 是“babel src -d dist”不正确?
感谢您的任何帮助,您可以提供!
我做了另一个文件夹,并遵循相同的步骤,它完美的工作。 由于某种原因,它不能在这个目录下工作。
你运行“npm install”来安装dev软件包吗?
我最近遇到过同样的问题。 删除node_modules文件夹并再次运行npm install
不再解决问题。
你得到这个错误的原因是因为babel-cli需要全局安装,而不是项目依赖。
运行npm install -g babel-cli
将其全局安装。
Babel-preset-es2015然后可以作为您的项目的开发依赖项npm install --save-dev babel-preset-es2015
你不应该在全球范围内安装babel-cli – 事实上,他们特别有一个段落告诉你不要从他们的官方文档。
编辑package.json
>>添加一个名为key的脚本,比如用值./node_modules/.bin/babel <commands>
如果你叫它build
,那么键入npm run build
。
发生此错误是因为./node_modules/.bin
不在$PATH
。 ./node_modules/.bin
是可以find所有可执行文件的地方。
按照文档的build议,您可以引用node_modules
的babel
cli:
$ ./node_modules/.bin/babel src -d lib
你可以修改你的npm run build
命令来使用这个命令:
"scripts": { "build": "./node_modules/.bin/babel src -d dist" },
上面的许多答案是正确的。
发生此错误是因为./node_modules/.bin不在
$PATH
。./node_modules/.bin
是可以find所有可执行文件的地方。
我所做的是我在我的zshrc文件中build立了一个简单的dynamic别名函数。
# Babel function bbl() { ./node_modules/.bin/babel "$@" }
现在你可以使用bbl
而不是babel
bbl --version 6.24.1 (babel-core 6.25.0)