【问题标题】:npm install does not care package-lock.jsonnpm install 不关心 package-lock.json
【发布时间】:2019-09-02 20:00:20
【问题描述】:

我在 jenkins 上的 npm install 安装了 package-lock.json 中未定义的软件包版本。

当我在本地(在 Windows 上)运行它时,它按预期工作,安装了 1.4.10 的 cleave.js 包。不过,当我通过 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 这个文件,它应该可以工作。但我不确定这是否会破坏其他任何东西,或者这是否就是要走的路。

感谢任何帮助。

【问题讨论】:

    标签: linux jenkins npm package-lock.json


    【解决方案1】:

    您可以使用

    代替删除模块
    npm cache clean
    

    在运行安装之前

    【讨论】:

      猜你喜欢
      • 2021-05-13
      • 2022-01-02
      • 2017-12-14
      • 1970-01-01
      • 1970-01-01
      • 2020-08-11
      • 2020-03-05
      • 2020-07-16
      • 2020-01-12
      相关资源
      最近更新 更多