'npm' 仅在 jenkins 中不被识别为内部或外部命令

'npm' 仅在 jenkins 中不被识别为内部或外部命令

编辑:如果其他人也会遇到这个问题。该文件是 cmd,因此调用npm.cmd可以解决问题。

我需要执行:

npm run build

这是 Jenkins 部署的一部分。我创建了一个执行所有 npm 操作的批处理文件。当我从 CMD 运行命令或批处理文件时,它运行良好,没有测量执行 if 的路径。但是当我从“执行 Windows 批处理命令”执行 if 时,我得到:

> npm run build:dev 
'npm' is not recognized as an internal or external command,
operable program or batch file.

答案1

我遇到了同样的问题,接下来尝试将其重命名为npm.cmd,但也没有用,然后尝试了完整路径,一开始成功了。但接下来我发现,npm 脚本依赖于其他进程,但也无法找到。我花了一段时间才意识到发生了什么,但这完全说得通。

在 Windows 中,每当您安装命令行应用程序时,它都会将其安装文件夹添加到变量中。 、等也是PATH如此。不过,变量有一个棘手的问题,它不会只刷新活动终端或进程。 因此,每当您向其中安装某些东西时,您都需要关闭并重新打开终端。nodenpmngPATH

实际上,对于正在运行的 jenkins 也是如此。它也需要重新启动才能PATH更新其变量。

因此,很有可能您刚刚安装了 node 或 npm,但尚未重新启动系统,也没有重新启动 jenkins 服务器。在这种情况下,它会给出上述错误。

我所有的问题都解决了只需重新启动詹金斯服务

答案2

问题是你的 NPM 对 Jenkins 不可见。你可以使用 npm.exe 的完整路径编写 CMD 命令:

C:\Users\USERNAME\Desktop\node-v10.15.3-win-x86\node.exe run build

查看节点版本:

C:\Users\USERNAME\Desktop\node-v10.15.3-win-x86\node.exe -v

答案3

通过如下方式调整命令解决了该问题: npm.cmd run build

相关内容