问题:npm包管理的依赖包版本冲突问题如何解决呢?

我有一个问题:一般是在项目目录有一个package.json文件,里面有要引入的包,执行安装后,依赖的包会被下载到node_modules目录下面,但是如果包之间相互依赖,而出现依赖相同的包,但是不一样的版本,那怎么办呢,这不就冲突了吗?

比如我要引入A包和B包,他们又同时依赖C包,A依赖C 1.0.0版本,B依赖C 2.0.0版本,那这样C包不冲突了吗,如果node_modules目录下面的包目录是带版本号就好了,不然可怎么办呢?

阅读 11.6k
2 个回答

npm 已经帮你解决了这些问题,你不用担心,只管用就好了。

npm2 是把所有依赖依次安装到模块目录下的 node_modules 这也导致了很多时候win下目录过深无法删除。
npm3 平行安装依赖,但不同版本依然安装到自己模块下的 node_modules 同时会创建一个带版本号的目录到根 node_modules 下。

run cnpm install, 然后看看你的node_modules你就发现如何解决的说的问题,即peer dependencies的问题。 安装不同的版本,并且用软链的方式解决。

图片描述

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题