未找到Babel命令

时间:2015-12-22 17:38:20

标签: npm babeljs

我按照Babel 'getting started'页面的说明安装了babel-cli工具。

从项目文件夹中的终端:

npm install --save-dev babel-cli

在此之后,有一个带有babel-cli文件夹的node_modules目录,但没有创建package.json。 npm还显示以下错误:

npm WARN enoent ENOENT: no such file or directory, open '/Users/MyName/Sites/Tutorials/Babel2/package.json

当试图运行babel时,我明白了:

babel src -d lib
-bash: babel: command not found

我安装了最新版本的nodejs / npm。我已经运行了npm update -g,并且我编辑了 .bash_profile 文件以包含:

export PATH=$PATH:/Users/MyName/npm/bin
export PATH=/usr/local/share/npm/bin:$PATH

我没有使用浏览器等其他npm工具。为什么巴贝尔不被认可?

14 个答案:

答案 0 :(得分:77)

这里有两个问题。首先,您需要一个package.json文件。告诉npm在没有安装的情况下进行安装会抛出npm WARN enoent ENOENT: no such file or directory错误。在项目目录中,运行npm init以生成项目的package.json文件。

其次,可能找不到本地二进制文件,因为本地./node_modules/.bin不在$PATH中。 How to use package installed locally in node_modules?中有一些解决方案,但在npm脚本中包装babel-cli命令可能更容易。这是有效的,因为npm run会将npm binnode_modules/.bin)的输出添加到提供给脚本的PATH

这是一个精简的示例package.json,它返回本地安装的babel-cli版本:

{
  "scripts": {
    "babel-version": "babel --version"
  },
  "devDependencies": {
    "babel-cli": "^6.6.5"
  }
}

使用以下命令调用脚本:npm run babel-version

将脚本放在package.json中非常有用但经常被忽略。在文档中更多:How npm handles the "scripts" field

答案 1 :(得分:18)

当我发现这个问题时,我一直在寻找

$ npm install -g babel-cli

答案 2 :(得分:11)

这是常见问题,它会从您安装.cmd的根目录中查找babel-cli文件。请尝试以下命令。

  

./ node_modules /的.bin / babel.cmd

一旦您能够在命令提示符中看到您的源代码。下一步是再安装一个npm模块babel-preset-es2015

按照以下答案安装babel-preset-es2015,看看为什么babel需要这个。

babel-file-is-copied-without-being-transformed

答案 3 :(得分:5)

这是我自动将我的本地项目node_modules/.bin路径添加到PATH所做的工作。在~/.profile我添加了:

if [ -d "$PWD/node_modules/.bin" ]; then 
    PATH="$PWD/node_modules/.bin"
fi

然后重新加载您的bash个人资料:source ~/.profile

答案 4 :(得分:3)

我有同样的问题。删除nodemodules文件夹并以管理员身份打开命令提示符,然后运行npm install

所有套餐都安装得很好。

答案 5 :(得分:2)

全局安装babel可解决此问题:

npm install -g @babel/core @babel/cli

但是,不鼓励在全局范围内安装依赖项,因为它们不会按项目管理版本。

您应该按照babel的{​​{3}}的建议在本地安装依赖项:

npm install --save-dev @babel/core @babel/cli

不利之处在于,这没有给您快速/便捷的方式来交互式地调用本地二进制文件(在这种情况下为babel)。 npx为您提供了一个很好的解决方案:

npx babel --version

这将运行babel的本地安装。另外,如果要避免键入npx,则可以配置documentation,然后运行:

babel --version

注意:在项目的根目录下创建文件.babelrc很重要,您可以在其中指定babel配置。首先,您可以使用shell auto fallback移植到ES2015 +:

npm install @babel/preset-env --save-dev

要启用预设,您必须在.babelrc文件中对其进行定义,如下所示:

{
  "presets": ["@babel/preset-env"]
}

答案 6 :(得分:1)

您需要在babel文件的路径周围添加引号,如下所示

“./ node_modules / .bin / babel”--help

答案 7 :(得分:0)

实际上,如果要使用cmd命令,则有两种方法。 首先,将其安装在全球环境中。 另一种方法是npm link。 因此,请尝试第一种方法:npm install -g babel-cli

答案 8 :(得分:0)

我遇到了同样的问题,尝试了所有我能想到的东西。不喜欢在全球安装任何东西,但最终必须运行 npm install -g babel-cli, 解决了我的问题。 也许不是答案,但绝对是可能的解决方案...

答案 9 :(得分:0)

例如为我工作

(Sample.cs)

答案 10 :(得分:0)

要安装Babel 7+版本,请运行:

npm install -g @babel/cli
npm install -g @babel/core

答案 11 :(得分:0)

对于那些使用Yarn而不是npm的程序包管理器的人:

yarn global add babel-cli

答案 12 :(得分:0)

一种选择是全局安装cli。

Babel 7 was released起,命名空间已从babel-cli更改为@babel/cli,因此:

npm install --global @babel/cli

您可能仍会遇到@babel/core的错误,因此:

npm install --global @babel/core

答案 13 :(得分:0)

这在package.json中以npm脚本的形式为我工作,但是即使我将它们作为开发依赖项,也确实需要花很长时间才能获取它们。它似乎也太长了。

"babel": "npx -p @babel/cli -p @babel/core babel --version"

最终解决这个问题的方法也更简单但也很有趣

npm install

我以为我已经运行了,但是我猜需要重新构建一些东西。然后就这样:

"babel": "babel --version"