"npm-run-all"未被识别为内部或外部命令。

38

我安装了npm-run-all并在我的Windows机器上配置了环境变量(可能没有必要),但是出现了错误:

'npm-run-all' 不是内部或外部命令,也不是可运行的程序或批处理文件。

我正在尝试使用npm run build来构建我的当前项目,其中包括抛出错误的脚本:

npm-run-all -p build-css build-webpack

我需要做一些额外的事情才能使它运行吗?


12
你尝试过运行npm install -g npm-run-all吗? - Vaibhav
1
@Vaibhav的评论应该是答案。 - Shamim
9个回答

54
  1. 确保 npm-run-all 在你的 package.json 的 devDependencies 中。
  2. 如果 package.json 中有 npm-run-all,请运行 npm i
  3. 如果没有,请安装它,运行:npm i npm-run-all -D

如果错误仍然存在,请按照以下步骤操作:

  1. 删除 node_modules 文件夹:运行 rm -rf node_modules
  2. 安装所有依赖项:运行 npm i

希望这可以帮助到您!


1
在删除整个node_modules文件夹之前,您可以尝试仅删除node_modules/npm-run-all,然后运行npm install - 这对我有帮助:即run-s被重新创建在node_modules/.bin中。 - TmTron

22
你可能只需要先执行以下命令(在包含 package.json 文件的目录下)。

你可能只需要先执行以下命令(在包含 package.json 文件的目录下)

npm install

9

请这样做。

npm i npm-run-all -g

那么这个问题就会被解决。


7

除了像评论中建议的那样全局安装npm-run-all之外,您还有几个选择:

1)创建NPM脚本

package.json文件有一个scripts部分,可以用来定义任何您需要在应用程序上工作时运行的快捷方式。有一些预定义的脚本,如runtest,可以通过简单的npm start/npm test执行,或者您可以定义任何您喜欢的内容,然后使用npm run my-script-name运行它。您可以尝试:

{
  "scripts": {
    "start": "npm-run-all -p build-css build-webpack"
  }
}

任何在此引用的NPM模块“只需运行”(即,NPM在幕后解析可执行文件的路径)
2)NPX 在较新版本的NPM(即>=5.2),提供了“NPX”可执行文件。这与在NPM脚本中运行命令具有类似的效果。您可以运行:
npx npm-run-all -p build-css build-webpack

再次强调,路径将会自动解析。

如果你使用的是旧版本的NPM,你也可以单独安装它:

npm install -g npx

你好 Matt,感谢你的回答。全局安装 npm-run-all 可以解决问题。你知道如何修改这个脚本在 Windows 命令行中运行吗?"build-webpack": "npm run clean && tsc && "./node_modules/.bin/webpack" && copy -R src/assets lib && node postbuild.js" - topreddy
@jaireddy,你应该可以在NPM脚本中直接使用“webpack”来引用它。正如我所说,路径会自动解析,这应该可以在任何操作系统上工作。或者,你也可以使用一个叫做“cross-env”的包(https://www.npmjs.com/package/cross-env),这可能对你有用。 - Matt Holland

2

npm install -g npm-run-all

这对我来说可行。

请再次确认npm-run-all是否在您的package.json中的devDependencies中。


0

我在使用代码编辑器 Brackets 时遇到了同样的问题。

为了解决这个错误,我采取了以下步骤。

在控制面板 -> 系统 -> 高级系统设置下,将 nodejs 新的系统变量添加到您的电脑中。

;C:\Program Files\nodejs\

之后重新运行命令:

npm

0
我不知道这是否能帮到任何人,但我之所以出现这个错误,是因为我在执行nodemon server.js命令时应该执行nodemon server/server.js命令。我不在正确的文件夹中!

0

你安装完node后重新打开了终端吗?

如果你在当前终端窗口中安装了npm。你的终端窗口将无法加载最新的路径设置(包括npm位置),以找到运行命令的npm应用程序。在这种情况下,请尝试以下步骤。

  1. 尝试关闭当前终端会话。
  2. 重新打开一个新会话。
  3. 再次尝试命令(将使用已安装npm的新路径设置)

0

这对我有用。

npm audit fix --force

你也可以尝试降级你的autoprefixer,似乎版本10.0.0与postcss不兼容。

npm i autoprefixer@9.8.6

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接