【问题标题】:how to fix npm: not found error如何修复 npm:未找到错误
【发布时间】:2018-10-09 05:45:06
【问题描述】:

这是我的第一个 Jenkins 流水线项目。我创建了一个简单的 Node.js 应用程序,并上传到了 hithub(公共 repo),我想要用我的 Jenkinsfile 做的只是在我的Build 阶段“npm install”。我相信詹金斯正在找到Jenkinsfile,但它只是没有找到npm。我正在使用 jenkins 官方 docker 映像来运行我的 jenkins 服务器。这是我安装的两个插件

1) NodeJS Plugin and 2) Pipeline NPM Integration Plugin

这是文件

 pipeline {                                                                                                       
     agent any
     stages {
        stage ("Build") {
           steps {
              sh "npm install"
           }
        }
     }
  }

这是我运行“立即构建”时遇到的错误 【第二个项目】运行shell脚本 + npm 安装

/var/jenkins_home/workspace/second project@tmp/durable-ef33ffd4/script.sh: 2: /var/jenkins_home/workspace/second project@tmp/durable-ef33ffd4/script.sh:

npm:未找到

有人可以帮忙吗?

【问题讨论】:

    标签: node.js jenkins jenkins-pipeline


    【解决方案1】:

    也许,你已经想到了。您在启动 Jenkins 容器时是否在容器中托管了您机器的 docket socket?

    具体来说,您需要在 docker run 命令上使用-v /var/run/docker.sock:/var/run/docker.sock

    然后在您的管道中,您需要在一个 docker 容器上运行 npm,该容器是从官方节点 docker 镜像构建的,例如 node:10.11.0-alpine。这是一个例子

    pipeline {                                                                                                       
         agent {
            docker {
              image 'node:10.11.0-alpine'
            }
         }
         stages {
            stage ("Build") {
               steps {
                  sh "npm install"
               }
            }
         }
      }
    

    【讨论】:

      【解决方案2】:

      我想,您的 npm 二进制文件不在 PATH 变量中。 尝试指定 npm 的完整路径,通常是 /usr/bin

       pipeline {                                                                                                       
           agent any
           stages {
              stage ("Build") {
                 steps {
                    sh "/usr/bin/npm install"
                 }
              }
           }
        }
      

      您可以使用命令which npm在控制台中检查npm路径

      【讨论】:

        【解决方案3】:

        如果您在 Windows 上,请尝试以管理员身份运行 CMD,然后安装 NPM,它会为您工作

        【讨论】:

        • 我在 Mac 上。如果我在终端上执行npm install,我的 npm 就可以工作。只是在 /on Jenkins 上不起作用。
        • 尝试以管理员身份登录您的 mac,然后尝试再次运行该命令
        • 我认为您没有理解问题/问题。 npm install 在 Mac 的终端上运行良好。只是詹金斯没有找到npm
        猜你喜欢
        • 2021-10-09
        • 2021-10-19
        • 2012-06-05
        • 2016-12-23
        • 1970-01-01
        • 2022-10-24
        • 1970-01-01
        • 2022-01-25
        相关资源
        最近更新 更多