NPM依赖管理最佳实践

npm dependency management best practices

本文关键字:最佳 管理 依赖 NPM      更新时间:2023-09-26

我是节点社区的新手。我最近加入了这个团队,这样我就可以为一个已经开发了好几年的复杂web应用程序构建一个版本。我的构建中的两个关键工具是Grunt和Browserify,但应用程序也使用了jQuery、Backbone、d3和其他一些库和插件。

我遇到的一个问题是:默认情况下,当我用npm安装并保存一个包时,它会用一个semver表达式来设置这个包,当你运行npm update时,它会捕获这个包的所有未来版本。正如本文所解释的那样,这一开始看起来似乎是一件好事("给我这个包和所有未来的升级"),但它将您自己的应用程序暴露给包维护者所做的任何非向后兼容的更新……这篇文章还提供了一些推荐的最佳实践,但它写于4年前;我希望有其他的,更新的想法。

你用什么方法来解决这个问题?我不能每次在我所依赖的库中进行重大更改时都浪费时间更新我的软件。我想在我准备好了的时候更新,而不是在我运行npm update的时候。

使用npm shrinkwrap保存包含确切版本的依赖树,所以当你npm install时,它会使用这些确切的版本。

npm outdated命令会告诉你哪些包是过时的。

npm install <pkg>@<version> --save

代替更新所有包的npm update,更新特定的包