linux - npm install 不关心 package-lock.json

标签 linux jenkins npm package-lock.json

我在 jenkins 上的 npm install 安装了一个包的版本,而不是在 package-lock.json 中定义的。

当我在本地(在 Windows 上)运行它时,它按预期工作,安装了 cleave.js 包的 1.4.10。不过,当我通过 jenkins 运行它时,它会安装一个不同的版本 1.5.3。

当我检查 jenkins 构建日志时,它看起来像是从缓存的二进制文件安装包。

Cached binary found at /var/lib/jenkins/.npm/node-sass/4.12.0/linux-x64-57_binding.node
> core-js@2.6.9 postinstall /var/lib/jenkins/workspace/CI-MyProject-Demo/build/exports/MyProject/MyProject-web/node_modules/core-js
> node scripts/postinstall || echo "ignore"

> sauce-connect-launcher@1.2.7 postinstall /var/lib/jenkins/workspace/CI-MyProject-Demo/build/exports/MyProject/MyProject-web/node_modules/sauce-connect-launcher
> node scripts/install.js || nodejs scripts/install.js

> node-sass@4.12.0 postinstall /var/lib/jenkins/workspace/CI-MyProject-Demo/build/exports/MyProject/MyProject-web/node_modules/node-sass
> node scripts/build.js

Binary found at /var/lib/jenkins/workspace/CI-MyProject-Demo/build/exports/MyProject/MyProject-web/node_modules/node-sass/vendor/linux-x64-57/binding.node
Testing binary
Binary is fine
sfra@4.0.0 /var/lib/jenkins/workspace/CI-MyProject-Demo/build/exports/MyProject/MyProject-web

...
│   └── rimraf@2.7.1 
├── cleave.js@1.5.3 
├─┬ cross-env@5.2.1 
...

现在,我能想到的可能的解决方案是,我可以删除 /var/lib/jenkins/.npm/node-sass/4.12.0/linux-x64-57_binding.node 这个文件,它应该可以工作。但我不确定这是否会破坏其他任何东西,或者这是否是可行的方法。

感谢任何帮助。

最佳答案

而不是删除模块,你可以使用

npm cache clean

在运行安装之前

关于linux - npm install 不关心 package-lock.json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57762135/

相关文章:

macos - 无法在 MacOS 上安装 TypeScript - 终端错误

linux - 将unix/linux文件名字符集转换为windows

linux - CentOS 安装 blender 。 svn : E175002 Could not read file size

上传文件中的php空间自动替换为下划线

jenkins - 在 Jenkins 中 Poll SCM 和定期构建之间有什么区别?

jenkins - 如何识别 Jenkins pipeline 的 groovy 脚本中的编译错误?

linux - 使用yum install命令如何获取软件的版本号?

ubuntu - 在不同的用户下运行 jenkins

javascript - react native ,捆绑失败

node.js - 如何将 npm 包安装到当前工作目录?