在这个linux服务器上,我有一个名为" myuser"的用户。 对于这个用户,当回显路径时,我得到了这个:
/home/myuser/bin:/home/myuser/.local/bin:/home/myuser/.nvm/versions/node/v6.11.1/bin:/usr/local/sbin:/usr/local/仓:/ usr / sbin目录:在/ usr / bin中:/ sbin目录:/ bin中:在/ usr /游戏:在/ usr /本地/游戏:/ SNAP / bin中
拥有节点应用程序,在手动部署时我运行:
npm i
它有效。
现在,我安装了Jenkins。我尝试安装的Jenkins项目位于:
/var/lib/jenkins/workspace/test
构建正在执行shell脚本。在那个窗口我输入了:
#!/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 shell中,我得到了这个:
[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和even节点。 如何让Jenkins知道npm / node在哪里? 我试图先在shell中写这个:
$ PATH = /家庭/为myuser / .nvm /版本/节点/ v6.11.1 / bin中
但仍然没有运气。
答案 0 :(得分:5)
只需为jenkins安装nodeJS plugin
,就可以找到它here。
安装插件后,重新启动jenkins,然后转到全局配置以指定版本。
配置的完整细节可以在上面链接的插件文档中找到。
要访问jenkins 2.x中的插件页面:
只需转到
Manage Jenkins > Manage Plugins
视图,可供Jenkins环境的管理员使用。 - https://jenkins.io/doc/book/managing/plugins/
但是,我建议使用pipelines代替CI流程的插件:
管道是描述软件交付管道部分的说明。
将此管道配置添加到jenkins上的node.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
是通过泊坞窗图片node:6-alpine
安装的。
Jenkins docs提供了通过CI构建nodejs应用程序的完整教程:https://jenkins.io/doc/tutorials/build-a-node-js-and-react-app-with-npm/
答案 1 :(得分:1)
在管道方案中,唯一对我有用的是添加
tools {nodejs“您的节点JS安装名称”}
安装Node JS插件并在 Manage Jenkins-> Global Tool Configuration 菜单中添加新配置。
答案 2 :(得分:0)
此线程中的答案并没有帮助我,帮助的是将node.js工具添加到我的Jenkinsfile中:
pipeline {
agent any
tools {nodejs "nodejs"}
stages {
stage('Example') {
steps {
sh 'npm config ls'
}
}
}
}
其中字符串"nodejs"
是name
中的global tool configuration
答案 3 :(得分:0)
在安装NodeJS后重启PC,Jenkins将看到npm
答案 4 :(得分:0)
使用nvm安装Node.js
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.32.0/install.sh | bash
. ~/.nvm/nvm.sh
nvm install 4.4.5
node -v //4.4.5
此外,在jenkins中,管理Jenkins >>全局工具conf >> Node.js安装
答案 5 :(得分:0)
我已经为此战斗了一段时间。终于找到了解决方案。从作业菜单中选择Configure
下的Build Environment
,然后选择Provide Node & npm bin/ folder to PATH
。您可以保留默认设置,一切顺利。
答案 6 :(得分:0)
如果您正在使用管道。
每当要在管道中使用npm时,请使用:
nodejs('<name of your Node installation>'){
//here your npm commands p.e.
npm install
npm run prod
}
答案 7 :(得分:0)