我希望能够将我本地安装的软件包与我的项目package.json文件进行比较,而无需针对npm在线存储库进行调用。如果有一个包基于package.json文件已经过时,那么它只会转到npm在线仓库并安装包。
这样做的原因是我希望能够更新package.json文件以要求更新版本的软件包,将此更改提交到项目仓库,当团队中的其他开发人员获得最新版本的npm软件包时更新。如果所有内容都是最新的,或者如果访问npm repo或互联网失败导致构建失败,我不想放慢流程。
我想知道这是否已经解决了用例,还是需要解析package.json文件并将其与“npm ls”输出进行比较?
答案 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