npm install只在包缺失或与package.json相比过期时才安装

时间:2014-02-26 23:54:22

标签: npm

我希望能够将我本地安装的软件包与我的项目package.json文件进行比较,而无需针对npm在线存储库进行调用。如果有一个包基于package.json文件已经过时,那么它只会转到npm在线仓库并安装包。

这样做的原因是我希望能够更新package.json文件以要求更新版本的软件包,将此更改提交到项目仓库,当团队中的其他开发人员获得最新版本的npm软件包时更新。如果所有内容都是最新的,或者如果访问npm repo或互联网失败导致构建失败,我不想放慢流程。

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

1 个答案:

答案 0 :(得分:2)

您需要设置本地存储库(通过复制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)“commander”可以从1.3.x更新到2.0.x.   (已安装:1.3.2,最新版本:2.0.0)

     

运行'npm-check-updates -u'自动升级package.json   检查全局npm包以获取更新:

     

$ npm-check-updates -u