美文网首页饥人谷技术博客
npm3 与 npm2 相比有什么改进?

npm3 与 npm2 相比有什么改进?

作者: 晓风残月1994 | 来源:发表于2017-11-06 16:38 被阅读397次

    请直接看官网英文文档,说的很明白的了:
    npm v3 Dependency Resolution

    如果要我简单来说的话,就是 npm3 和 npm2 对于依赖的处理不一样了

    npm2所有项目依赖是嵌套关系,而npm3为了改进嵌套过多、套路过深的情况,会将所有依赖放在第二层依赖中(所有依赖只嵌套一次,彼此平行,也就是平铺的结构)

    下面我来搬个砖,简单翻译一下:

    举个栗子:

    有一个模块A,其依赖于B:


    现在有一个app应用依赖于A,执行:

    npm install
    

    会自动安装所有依赖。

    npm3 会将模块A 和模块B 安装到同一 node_modules 目录下,二者是同级的;
    而npm2 依然会在node_modules 中安装A,但是会将B 安装到 A里面的node_modules, 也就是 A 和 B 是嵌套关系:

    现在假如 app 需要另一个模块C,并且 C 是依赖于另一个版本的B:

    那么问题来了,在npm2中,由于是层层嵌套的结构,所以继续嵌套即可,但是npm3如何处理呢?已经有一个 B v1.0版本了,又不能相同目录下再来一个 B v2.0 ,那么变通一下,将 B v2.0 嵌套在 C 中即可:

    在终端中,文件树长得像下面这样:

    由于npm3 的改变,怕分不清彼此依赖了吗?
    没关系,执行 npm ls 依然可以看到模块间彼此依赖关系:

    如果你想查看最浅层的依赖关系,只需要:

      npm ls --depth=0
    

    相关文章

      网友评论

        本文标题:npm3 与 npm2 相比有什么改进?

        本文链接:https://www.haomeiwen.com/subject/jgblmxtx.html