要开始,我跑了:
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”是不正确的?
感谢您提供的任何帮助!
我制作了另一个文件夹并按照相同的步骤操作,它完美无缺。由于某种原因,它不能在这个目录中工作。
答案 0 :(得分:12)
我最近遇到过同样的问题。删除node_modules文件夹并再次运行npm install
不再解决问题。
您收到此错误的原因是因为需要全局安装babel-cli,而不是作为项目依赖项。
运行npm install -g babel-cli
以全局安装。
然后可以将Babel-preset-es2015安装为项目的开发依赖项npm install --save-dev babel-preset-es2015
答案 1 :(得分:10)
你永远不应该在全球范围内安装babel-cli - 实际上,他们specifically have an entire paragraph telling you not to来自他们的官方文档。
修改package.json
>>使用名为build
的密钥添加一个脚本,其值为./node_modules/.bin/babel <commands>
如果您将其称为build
,则只需输入npm run build
。
答案 2 :(得分:7)
发生错误是因为./node_modules/.bin
不在$PATH
中。 ./node_modules/.bin
是可以找到所有可执行二进制文件的地方。
根据documentation的建议,您可以参考babel
内的node_modules
cli:
$ ./node_modules/.bin/babel src -d lib
您可以修改npm run build
命令以使用它:
"scripts": {
"build": "./node_modules/.bin/babel src -d dist"
},
答案 3 :(得分:4)
你跑过&#34; npm install&#34;安装开发包?
答案 4 :(得分:0)
上面的许多答案都是正确的。
发生错误是因为./node_modules/.bin不在
$PATH
中。./node_modules/.bin
是可以找到所有可执行二进制文件的地方。
我所做的是在zshrc文件中构建了一个简单的动态别名函数。
# Babel
function bbl() {
./node_modules/.bin/babel "$@"
}
现在您可以使用bbl
代替babel
bbl --version
6.24.1 (babel-core 6.25.0)