# Package.json 依赖管理

我们使用 npm 安装包的时候,常常会安装很多依赖,等到项目上线后,项目代码一般不会改动了,可依赖包却不断的更新,那么我们依赖包是否需要不断的更新呢?

# 是否需要升级依赖包

可以从用户与开发者两个角度去着手

# 用户角度

用户其实并不关心项目中的依赖,只要程序能够正常运行就好,如果升级后导致出现一些问题,会引起用户的反感

# 开发者角度

开发者与用户不一样,由于前端更新换代非常快,库的更新也非常快,保持依赖库的更新会起到优化项目,利于维护等好处。

# 优化项目 : 新版本的库一般是对旧版本库的一种已知 bug 的修复,旧版本的扩展,性能优化等。例如:同样使用 node,跑一次测试用例,node10 版本比 node 6 版本构建要缩短 50%。
# 利于维护:新版本的库都是最新的文档,查阅比较方便,如果项目交接一个新手,可以避免去学习老版本的语法,降低交接难度

# 如何升级依赖包

# 1、最简单的方法是使用 npm update package_xxx 来升级一个包,但会受到包版本规则的影响。

package.json 中包版本号规则:

~1.0.0 匹配 1.0.x

^1.0.0 匹配 1.x.x

1.0.0 匹配 1.0.0

1.0.0 匹配大于 1.0.0

<1.0.0 匹配小于 1.0.0

✳️ 匹配任何版本

latest 匹配最新版本

# 2、使用 npm-check-updates,自动将所有 package.json 中的包更新为最新版。

//全局安装

npm i npm-check-updates -g

// 在项目根目录执行命令

ncu -u

# 总结

关于是不是应该保持项目依赖的问题,我个人建议是:

使用自动化工具自动更新,

单元测试通过,合并到项目中。

单元测试不通过,及时查看报错信息,判断修改难度。

难度小,例如:官方弃用了旧的 api,同时提供了新的 api 来代替,则需要及时进行更新。

难度大,例如:官方重构了项目,api 结构、使用方式都发生了改变,则可以不进行更新。