Npm 找不到Babel命令

Npm 找不到Babel命令,npm,babeljs,Npm,Babeljs,我已经安装了babel cli工具,如babel页面所述 从“我的项目”文件夹中的终端: 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.

我已经安装了babel cli工具,如babel页面所述

从“我的项目”文件夹中的终端:

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\u配置文件以包括:

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

我没有在其他npm工具(如browserify)中遇到过这种情况。为什么不能识别babel?

这是一个常见问题,它从安装了
babel cli的根目录中查找
.cmd
文件。尝试下面的命令

./node_modules/.bin/babel.cmd

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

按照下面的答案安装
babel-preset-es2015
,并了解为什么babel需要它


这里有两个问题。首先,您需要一个
package.json
文件。告诉npm在没有安装的情况下安装将抛出
npm WARN enoint enoint:no-this file或directory
错误。在项目目录中,运行
npminit
为项目生成
package.json
文件

其次,可能找不到本地二进制文件,因为本地
/node\u modules/.bin
不在
$PATH
中。中有一些解决方案,但只将babel cli命令包装到npm脚本中可能更容易。这是因为
npm run
npm bin
node\u modules/.bin
)的输出添加到提供给脚本的
路径中

下面是一个简化的示例
package.json
,它返回本地安装的babel cli版本:

{
  "scripts": {
    "babel-version": "babel --version"
  },
  "devDependencies": {
    "babel-cli": "^6.6.5"
  }
}
使用以下命令调用脚本:
npm run babel version


将脚本放在package.json中非常有用,但经常被忽略。文档中有更多内容:

这是我自动将本地项目
node\u modules/.bin
路径添加到
path
中所做的。在
~/.profile
中,我添加了:

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

然后重新加载bash配置文件:
source~/.profile

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


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

我也遇到了同样的问题。删除了
节点模块
文件夹,以管理员身份打开命令提示符,然后运行
npm安装


所有软件包都安装得很好。

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

$ npm install -g babel-cli

实际上,如果要使用cmd命令,有两种方法。 首先,在gloabl环境中安装它。 另一种方法是
npm链接

因此,请尝试第一种方法:
npm安装-g babel cli

我遇到了同样的问题,尝试了我能想到的一切。不喜欢在全球范围内安装任何东西,但最终不得不运行
npm安装-g babel cli
, 这解决了我的问题。 也许不是答案,但肯定是一个可能的解决方案

为我工作

./node_modules/.bin/babel --version
./node_modules/.bin/babel src/main.js

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

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

对于使用纱线作为包装管理器而不是npm的客户:

yarn global add babel-cli

一个选项是全局安装cli

由于名称空间已从
babel cli
更改为
@babel/cli
,因此:

npm install --global @babel/cli
您可能仍然会遇到
@babel/core
的错误,因此:

npm install --global @babel/core

在全球范围内安装
babel
可以解决此问题:

npm install -g @babel/core @babel/cli
但是,不鼓励在全球范围内安装依赖项,因为它们不会在每个项目的基础上管理其版本。

您应该在本地安装依赖项,如
babel
的建议:

缺点是,这没有提供以交互方式调用本地二进制文件的快速/方便的方法(在本例中为
babel
npx
为您提供了一个很好的解决方案:

npx babel --version
这将运行您在本地安装的
babel
。此外,如果要避免键入
npx
,可以配置,然后只需运行:

babel --version

注意:在项目根目录下创建一个文件
.babelrc
,在其中指定babel配置,这一点很重要。作为一个起点,您可以用来传输到ES2015+:

npm install @babel/preset-env --save-dev
为了启用预设,您必须在.babelrc文件中定义它,如下所示:

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

这在package.json中作为npm脚本对我很有效,但似乎需要很长时间才能获取这些包,即使我将它们作为开发依赖项。它似乎也太长了

"babel": "npx -p @babel/cli -p @babel/core babel --version"
最终解决这个问题的方法简单得多,但也很有趣

npm install
我以为我已经在运行了,但我想有些东西需要重建。那么就:

"babel": "babel --version"

您可以在这里看到如何开始使用babel cli:如果您使用的是fish,请尝试在我的情况下重新安装我的node_模块:
rm-rf./node_模块和&npm I
,在考虑其他答案后,探索如何处理我的
~/.profile
文件,以确保我可以在本地
node_模块中调用包,我认为
package.json
scripts
区域是最好的选择。您不需要告诉您的同事更改他们的配置文件或制作alias,您的脚本就可以工作了。我使用的是Thread(工作要求),我看到的大多数解决方案都使用npx。“/node_modules/.bin不在$PATH”为我修复了它。谢谢您不应该将sudo与npm一起使用。尝试使用nvm来管理您的节点版本。
npm安装-g babel cli
在没有sudo的情况下可以工作。您应该使用
sudo
npm安装-g babel cli
来访问此文件/usr/local/lib/node\u模块,否则您将被拒绝。@babel/cli文档建议不要全局安装babel cli(以避免与使用不同版本的babel的其他项目发生冲突
"babel": "babel --version"