【问题标题】:npm install only if package missing or out-of-date compared to package.json仅当包丢失或与 package.json 相比过期时才安装 npm
【发布时间】:2014-03-05 04:41:46
【问题描述】:

我希望能够将本地安装的包与我的项目 package.json 文件进行比较,而无需调用 npm 在线存储库。如果有一个基于 package.json 文件的包已经过期,那么只有这样它才会去 npm 在线 repo 并安装该包。

这样做的原因是我希望能够更新 package.json 文件以需要更新版本的包,将此更改提交到项目 repo 以及当团队中的其他开发人员获得最新的 npm 包时更新。如果一切都是最新的,我不想减慢这个过程,或者如果访问 npm 存储库或互联网中断,我不想导致构建失败。

我想知道这是否是一个已经解决的用例,还是我需要自己解析 package.json 文件并将其与“npm ls”输出进行比较?

【问题讨论】:

    标签: npm


    【解决方案1】:

    您需要设置一个本地存储库(通过复制 NPM couchdb localy) (见https://stackoverflow.com/a/7577265/406458

    那么你可以使用 npm-check-updates。

    npm-check-updates 将为您提供可以在您的 package.json 文件中更新的软件包列表,请参阅 https://www.npmjs.org/package/npm-check-updates

    $ npm-check-updates

    “connect”可以从 2.8.x 更新到 2.11.x(安装:2.8.8, 最新:2.11.0)“指挥官”可以从 1.3.x 更新到 2.0.x (已安装:1.3.2,最新:2.0.0)

    运行 'npm-check-updates -u' 自动升级你的 package.json 检查全局 npm 包是否有更新:

    $ npm-check-updates -u

    【讨论】:

    • 谢谢。这看起来是一个合理的解决方案。
    猜你喜欢
    • 1970-01-01
    • 2016-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多