npm
July 17, 2022
Peer dependency #
对等依赖,通常用来表示插件和宿主包之间的依赖关系
对宿主包比较宽松的版本限制
对宿主包没有显式依赖关系,即没有直接的 require 或 import
冲突时会 warning,不会同时安装两个副本
由使用方决定安装什么版本
比如 react 组件,声明 react 为 peerDependency 及版本范围即可,因为使用你组件的项目肯定是个 react 项目,已经安装了 react
如果继续声明 react 为 dependency, 当跟宿主环境不一致时,同时存在两个 react 版本,会带来额外的冲突风险
Dependency #
运行时依赖,冲突时,会安装不同的版本
Dev dependency #
开发依赖,不会打到最终的包里
依赖管理 #
锁不锁版本1 #
理想的 semver 是 break.feat.bugfix,现实的 semver 是 break.break.break
-
不锁根据 semver 自动升级,可能被投毒或引入有 bug 的代码,造成故障
我本地都是好的,测试也测过,怎么发上去就挂了?
出问题了,责任算谁的?
-
锁
不能及时跟进安全修复,时间久了就是技术债,怎么升也升不动了