首页 > 解决方案 > Jenkins 找不到 npm 但可以找到 npm.cmd - Windows 10

问题描述

我在 Windows 10 VM 上遇到了 NPM 路径的新问题。

Node.js 和 NPM 是通过 NVM for Windows 设置的。

我们正在使用 Cygwin。

通过 Swarm 将 VM 连接到 Jenkins 后,我尝试运行一个简单的npm --version命令,它说找不到 NPM。

但是,如果我运行npm.cmd --version它会打印6.14.12

另外,如果我运行which npm它会返回/cygdrive/c/Program Files/nodejs/npm

但随后npm --version失败。

在此处输入图像描述

当我远程进入虚拟机时,所有这些命令都可以在虚拟机上运行,​​但是当我将它连接到 Jenkins 时,它在 Jenkins 脚本控制台和构建中都会失败。

我不明白什么?为什么,在詹金斯,NPM失败但NPM.cmd有效?

我们在多分支管道中使用 Windows、Redhat 和 MacOS VM,因此命令必须独立于操作系统。

标签: windowsjenkinsnpmpathcygwin

解决方案


推荐阅读