找不到 Babel 命令
Babel command not found
我已经按照 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 工具(例如 browserify)遇到过这种情况。为什么不识别 babel?
这是一个常见问题,它会从您安装 babel-cli
的根目录中寻找 .cmd
文件。试试下面的命令。
./node_modules/.bin/babel.cmd
一旦您能够在命令提示符中看到您的源代码。下一步是再安装一个 npm 模块 babel-preset-es2015
.
按照下面的答案安装 babel-preset-es2015
看看为什么 babel 需要这个。
这里有两个问题。首先,您需要一个 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? 中有一些解决方案,但将 babel-cli 命令包装在 npm 脚本中可能更容易。这是有效的,因为 npm run
将 npm bin
(node_modules/.bin
) 的输出添加到提供给脚本的 PATH
。
这是一个精简的示例 package.json
,其中 returns 本地安装的 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
这就是我自动将我的本地项目 node_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
我遇到了同样的问题。删除 nodemodules
文件夹并以管理员身份打开命令提示符,然后 运行 npm install
。
所有软件包安装正常。
当我发现这个问题时,我正在寻找
$ npm install -g babel-cli
其实,如果你想使用cmd命令,你有两种方法。
首先,将其安装在 gloabl 环境中。
另一种方式是npm link
。
所以,尝试第一种方式:npm install -g babel-cli
.
我运行遇到了同样的问题,尝试了我能想到的一切。不喜欢在全球范围内安装任何东西,但最终不得不 运行
npm install -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
对于那些使用 Yarn 而不是 npm 作为包管理器的人:
yarn global add babel-cli
一个选项是全局安装 cli。
由于 Babel 7 was released 命名空间已从 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
的 documentation:
中的建议在本地安装您的依赖项
npm install --save-dev @babel/core @babel/cli
不利之处在于,这使您无法 fast/convenient 以交互方式调用本地二进制文件(在本例中为 babel
)。 npx
给你一个很好的解决方案:
npx babel --version
这将 运行 您的本地安装 babel
。此外,如果您想避免键入 npx
,您可以配置 shell auto fallback,然后只需 运行:
babel --version
注意:在项目的根目录下创建文件 .babelrc
很重要,您可以在其中指定 babel 配置。作为起点,您可以使用 env-preset
转译为 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 '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 工具(例如 browserify)遇到过这种情况。为什么不识别 babel?
这是一个常见问题,它会从您安装 babel-cli
的根目录中寻找 .cmd
文件。试试下面的命令。
./node_modules/.bin/babel.cmd
一旦您能够在命令提示符中看到您的源代码。下一步是再安装一个 npm 模块 babel-preset-es2015
.
按照下面的答案安装 babel-preset-es2015
看看为什么 babel 需要这个。
这里有两个问题。首先,您需要一个 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? 中有一些解决方案,但将 babel-cli 命令包装在 npm 脚本中可能更容易。这是有效的,因为 npm run
将 npm bin
(node_modules/.bin
) 的输出添加到提供给脚本的 PATH
。
这是一个精简的示例 package.json
,其中 returns 本地安装的 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
这就是我自动将我的本地项目 node_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
我遇到了同样的问题。删除 nodemodules
文件夹并以管理员身份打开命令提示符,然后 运行 npm install
。
所有软件包安装正常。
当我发现这个问题时,我正在寻找
$ npm install -g babel-cli
其实,如果你想使用cmd命令,你有两种方法。
首先,将其安装在 gloabl 环境中。
另一种方式是npm link
。
所以,尝试第一种方式:npm install -g babel-cli
.
我运行遇到了同样的问题,尝试了我能想到的一切。不喜欢在全球范围内安装任何东西,但最终不得不 运行
npm install -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
对于那些使用 Yarn 而不是 npm 作为包管理器的人:
yarn global add babel-cli
一个选项是全局安装 cli。
由于 Babel 7 was released 命名空间已从 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
的 documentation:
npm install --save-dev @babel/core @babel/cli
不利之处在于,这使您无法 fast/convenient 以交互方式调用本地二进制文件(在本例中为 babel
)。 npx
给你一个很好的解决方案:
npx babel --version
这将 运行 您的本地安装 babel
。此外,如果您想避免键入 npx
,您可以配置 shell auto fallback,然后只需 运行:
babel --version
注意:在项目的根目录下创建文件 .babelrc
很重要,您可以在其中指定 babel 配置。作为起点,您可以使用 env-preset
转译为 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"