当前位置: 首页 > 知识库问答 >
问题:

Jenkins找不到npm

盖斌
2023-03-14

在这个linux服务器上,我有一个名为“myuser”的用户。对于此用户,在回显路径时,我得到这个:

/home/myuser/bin:/home/myuser/.local/bin:/home/myuser/.nvm/versions/node/v6.11.1/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

使用节点应用程序,手动部署时,我运行:

npm i

这很有效。

我安装了詹金斯。我尝试安装的Jenkins项目位于:

/var/lib/jenkins/workspace/test

生成正在执行外壳脚本。在该窗口中,我输入:

#!/bin/bash
npm i

当使用 Jenkins 构建时,我得到这个:

[test] $ /bin/bash /tmp/jenkins756533162549346948.sh
/tmp/jenkins756533162549346948.sh: line 3: npm: command not found
Build step 'Execute shell' marked build as failure
Finished: FAILURE

如果我只写:

echo $PATH

在Jenkins的外壳里,我得到了这个:

[test] $ /bin/sh -xe /tmp/jenkins5067097808572366507.sh
+ echo /usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/snap/bin
/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/snap/bin
[test] $ /var/lib/jenkins/tools/jenkins.plugins.nodejs.tools.NodeJSInstallation/6.11.1/bin/node /tmp/jenkins8733250738704177758.js
Finished: SUCCESS

如您所见,我安装了nodejs插件。无论如何,当使用 Jenkins shell 时,找不到 npm 甚至节点。如何让 Jenkins 知道 npm/node 在哪里?我试图首先在shell中写这个:

$PATH=/home/my user/. nv m/version/node/v 6.11.1/bin

但仍然没有运气。

共有3个答案

徐智渊
2023-03-14

只需为jenkins安装nodeJS插件,您可以在此处找到它。

安装插件后,重新启动jenkins,并转到全局配置以指定版本。

配置的完整细节可以在上面链接的插件文档中找到。

要访问jenkins 2. x中的插件页面:

只需转到“管理 Jenkins”即可

但是,我确实建议使用管道而不是CI流程的插件:

管道是描述软件交付管道部分的说明。

将此管道配置添加到 jenkins 上的节点.js项目以使其运行。

pipeline {
    agent {
        docker {
            image 'node:6-alpine'
            args '-p 3000:3000'
        }
    }
    environment {
        CI = 'true' 
    }
    stages {
        stage('Build') {
            steps {
                sh 'npm install'
            }
        }
        stage('Test') { 
            steps {
                sh './jenkins/scripts/test.sh' 
            }
        }
    }
}

正如您所看到的,它运行两个阶段,构建和测试应用程序npm通过docker镜像节点安装:6-alpine

Jenkins文档提供了通过CI:https://jenkins.io/doc/tutorials/build-a-node-js-and-react-app-with-npm/构建nodejs应用程序的完整教程

子车超英
2023-03-14

这个线程中的答案对我没有帮助,帮助的是将node.js工具添加到我的Jenkinsfile:

pipeline {
  agent any

  tools {nodejs "nodejs"}

  stages {
    stage('Example') {
      steps {
        sh 'npm config ls'
      }
    }
  }
}

其中字符串“nodejs”是您给节点的名称全局工具配置中的js工具

缪兴腾
2023-03-14

我已经为此奋斗了一段时间。终于找到了解决方案。从您的作业菜单中选择构建环境下的配置选择提供节点

正如Eric Wang在评论中指定的那样,需要首先安装NodeJS插件才能出现此选项:https://wiki.jenkins.io/display/JENKINS/NodeJS 插件

 类似资料:
  • 问题内容: 我在Mac OS上运行Jenkins。我有一个试图在目标之一中执行的ant构建文件。我有正确的路径,因为其中包含了android sdk 和文件夹,但仍然出现以下错误。 如果我将描述的jar从lib文件夹移到文件夹,则会遇到与另一个jar相关的其他类似错误,因此似乎无法从lib文件夹获取此jar。请帮忙。 问题答案: 我解决了我的问题。我有正确的路径和sdk安装目录。问题是我的Jenk

  • 问题内容: 以jenkins用户身份登录时,我在〜/ .ssh / id_rsa.pub中有一个ssh密钥。 我已将其正确导入到bitbucket中,并且已经接受了密钥。 当我尝试进行git clone(正确的URL)时,我仍然得到…。 有人知道发生这种情况的原因吗?根据我读过的文档,〜/ .ssh是jenkins用户的正确目录,此文件存在。 编辑:我的jenkins用户在〜/ .ssh中没有kn

  • 问题内容: 构建外壳为: 结果是: 为什么找不到node命令? 我正在使用docker官方jenkins映像运行它。 编辑:詹金斯:2.46.1-高山 问题答案: 根据问题JENKINS-34815(NodeJS插件无法安装全局NPM软件包)中的建议,检查您 看到这个评论: 使用当前的docker jenkins:2.32.1-alpine和插件nodejs:1.0时,在使用节点7.4时会再次发生

  • 问题内容: 我的xcodebuild通过ant成功运行了。如果我使用ssh进入系统并运行构建,则可以正常工作。但是,当通过Jenkins调用相同的ant目标(在mac上作为从设备运行)时,经典 为了使其正常工作,我尝试通过“ sudo ant”调用来运行它,当然,这会导致相同的错误。本地用户和root用户都回显相同的$ PATH,所以这不是问题。我看不到改变环境或改变Jenkins调用ant的用户

  • 我已经创建了GKE集群,并在该集群上安装了Jenkins。现在我正在运行管道,我已经创建了Jenkinsfile,用于构建DockerImage,但是当我运行管道时,它抛出了未找到Docker的异常 1)创建了GKE集群2)安装了Jenkins 3)添加了Docker集线器凭据4)添加了gitlab的访问密钥 JenkinsFile: stage(“Build Docker Image”){当{b