编辑:如果其他人也会遇到这个问题。该文件是 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
如此。不过,变量有一个棘手的问题,它不会只刷新活动终端或进程。 因此,每当您向其中安装某些东西时,您都需要关闭并重新打开终端。node
npm
ng
PATH
实际上,对于正在运行的 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