在Jenkins Docker容器中运行“npm install”时,我收到以下错误:
[INFO] --- exec-maven-plugin:1.6.0:exec (npm install) @ geosolutions ---
npm WARN tar ENOENT: no such file or directory, open '/var/jenkins_home/workspace/aproject2/node_modules/.staging/schema-utils-bdceae78/package.json'
npm WARN tar ENOENT: no such file or directory, open '/var/jenkins_home/workspace/aproject2/node_modules/.staging/schema-utils-bdceae78/README.md'
...(and many lines like) ...
npm WARN tar ENOENT: no such file or directory, futime
npm WARN tar ENOENT: no such file or directory, futime
npm WARN tar ENOENT: no such file or directory, futime
npm WARN tar ENOENT: no such file or directory, futime
未生成“node_modules”,只有在“node_modules/.staging”下生成了一些文件。进入Jenkins Docker容器后,我可以通过手动执行以下步骤来解决这个问题:rm -rf node_modules、rm -f package-lock.json、npm install。下次我将跳过“npm install”步骤,直接开始“ng build”,然后一切正常。当然,这不是一个合适的解决方法。因此,这不是一个重复的问题。如何进行良好的“npm install”?我的Jenkins容器中有一个Node / Npm安装程序。Npm是6.5,而节点则是8、9、10或11。都带有最新的npm 6.5。我的Jenkins镜像包含用于添加npm/nodejs的代码。RUN apt-get install -y curl \
&& curl -sL https://deb.nodesource.com/setup_9.x | bash - \
&& apt-get install -y nodejs \
&& curl -L https://www.npmjs.com/install.sh | sh
更新:今天我在办公室遇到了同样的问题。两个不同的Jenkins任务使用相同的Maven任务开始执行'npm install'命令。一个任务可以正常执行,而另一个任务则不行。其中一个Jenkins任务是通过多分支方式启动的,而另一个则是普通管道。嗯,非常奇怪。
我认为这与操作环境有关,因此与$PATH、环境变量等有关。