一、什么是 peerDependencies

peerDependencies 存在于 NPM 的 package.json 中,如果项目中依赖模块 X、模块 Y,模块 Y 又依赖模块 X,当模块 X 出现版本冲突的时候,则会打包出 X 的两份代码。在这个模块 Y 里面使用 peerDependencies 引入模块 X,这样当前项目和模块 Y 便会共用这个模块 X。

当在 peerDependencies 引入一个模块后:

当前的代码将与符合版本条件的模块和谐相处。

如何这个模块已经存在于项目的 node_modules 中,什么也不提示。

如何这个模块不存在于项目的 node_modules 中,警告用户缺少此模块,但是不自动安装。

注意: npm i 并不会自动安装 peerDependencies 里的模块,所以开发模块的需要在 devDependencies 同步添加相应模块。

如上所见 m-child 的三个版本都下载到了本地,并且构建打包后包含了三份 m-child 的代码。