Jenkins npm 安装对目录 A 失败,但对于目录 B 安装成功



My Jenkinsfile 设置在两个目录 github 存储库的根目录下,旨在为 Docker 容器内的两个子目录(dir "frontend" 和 dir "backend"( 安装(npm install( 包。Dir bakcend,一个Nestjs应用程序,安装没有错误。Dir 前端,一个角度应用程序,在 npm 安装过程中出错,并给出以下错误:"npm WARN tar ENOENT:没有这样的文件或目录...">

root
-dir backend (nestjs server)
-dir frontend (angular app)
-Jenkinsfile

詹金斯文件狙击:

pipeline {
agent {
docker {
image 'node:alpine'
args '-p 20001-20100:3000'
}
}
stages {
stage('Build') {
steps {
dir('frontend') {
sh 'npm install' <<<THIS ERRORS
echo "install frontend end"
}
dir('backend') {
sh 'npm install' <<<THIS WILL NOT ERROR
echo "install backend end"
}
} 
}
etc...

"前端"npm install将导致错误。如果我颠倒顺序并将"后端"步骤放在第一位,它将安装后端包而不会出错。

我有另一个带有类似角度应用程序的 Jenkinsfile,它可以毫无错误地安装、构建和部署,所以我不认为这是一个角度/CLI 问题。

命令npm install需要一个pacage.json文件,该文件在角度应用程序中不可用,因此它在角度侧给出错误,而在节点侧,package.json文件已经存在,因此在节点端,它成功运行。

要在角侧运行命令,首先需要运行命令npm init然后可以 rum 命令npm install

角侧

Step 1 ) npm init
step 2 ) npm install

这将解决您的问题。

我最终从node:alpine切换到node:late,这允许npm安装完成。

相关内容

  • 没有找到相关文章

最新更新