Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法通过npm脚本运行babel“;巴别塔:未找到命令“;_Javascript_Node.js_Npm_Babeljs - Fatal编程技术网

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
仍然可以解决此问题