Javascript 无法通过npm脚本运行babel“;巴别塔:未找到命令“;
为了开始,我跑了:Javascript 无法通过npm脚本运行babel“;巴别塔:未找到命令“;,javascript,node.js,npm,babeljs,Javascript,Node.js,Npm,Babeljs,为了开始,我跑了: 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": {
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文件吗?“巴别塔src-d区”是否不正确
谢谢你能提供的任何帮助
我制作了另一个文件夹,并遵循相同的步骤,它工作得非常好。由于某些原因,它在此目录下不工作。是否运行“npm安装”来安装开发包?发生错误的原因是
/node\u modules/.bin
不在$PATH
中/node\u modules/.bin
是可以找到所有可执行二进制文件的地方
按照的建议,您可以在节点单元模块
中引用巴别塔
cli:
$ ./node_modules/.bin/babel src -d lib
您可以修改npm run build
命令以使用此命令:
"scripts": {
"build": "./node_modules/.bin/babel src -d dist"
},
我最近遇到了同样的问题。删除node_modules文件夹并再次运行
npm install
不再修复该问题
出现此错误的原因是babel cli需要全局安装,而不是作为项目依赖项安装
运行npm安装-g babel cli
以全局安装它
然后,可以将Babel-preset-es2015作为项目的开发人员依赖项安装
npm安装--保存开发人员Babel-preset-es2015
您不应该在全局范围内安装Babel cli-事实上,它们是从其官方文档中安装的
编辑package.json
>>添加一个脚本,其键名为build
,值为/node\u modules/.bin/babel
如果您将其命名为
build
,请键入npm run build
以上许多答案都是正确的
发生此错误的原因是./node\u modules/.bin不在$PATH
中/node\u modules/.bin
是可以找到所有可执行二进制文件的地方
我所做的是在我的zshrc文件中构建了一个简单的动态别名函数
# Babel
function bbl() {
./node_modules/.bin/babel "$@"
}
现在您可以使用bbl
而不是babel
bbl --version
6.24.1 (babel-core 6.25.0)
你做过“npm i”吗?你能在node_模块中看到它们吗?@geraint是的,我看到了!对于我安装和使用的每一个npm,在运行命令“npm run build”时,save devIt不需要位于$PATH中,该命令正在使用本地副本。我尝试了这个方法,但实际上仍然收到完全相同的错误。我查看了垃圾箱文件夹,里面没有“巴贝尔”的名字是的,我有!对于我安装和使用的每一个npm——save devc,你能列出node_modules文件夹吗?以及./node_modules/.bin?ls-l node_modules和ls-l./node_modules/.binYep,这是一个相当大的列表,所以我把它放在pastebin:@s.xieLooks好像你没有在./node_module/.bin/babel->../babel cli/bin/babel.js下的babel lnk文件。删除node modules文件夹,重新安装一切正常。。虽然我不知道为什么?非常感谢您的帮助。这将使命令正常工作,唯一的警告是,强烈建议您不要全局安装,甚至建议您在全局安装的情况下运行
npm uninstall--global babel cli
。用他们的话说,这是因为:1。同一台机器上的不同项目可能依赖于不同版本的Babel,允许您一次更新一个。2.这意味着您对正在工作的环境没有隐含的依赖性。使您的项目更易于移植和安装。使用全局安装babel cli
不是一个好做法,除了删除node\u modules
文件夹并运行npm install
仍然可以解决此问题