【每日一题NO.68】NPM2与NPM3的区别

前端印记

共 767字,需浏览 2分钟

 ·

2021-10-25 04:56

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

npm2 依赖安装的时候比较简单,直接按照包依赖的树形结构下载填充本地目录结构,也就是说每个包都会将该包的依赖组织到当前包所在的 node_modules 目录中。
npm3 则会对依赖安装进行了改造,采用扁平结构的思路来组织依赖包的目录结构。具体的就是npm install的过程时:按照 package.json 里依赖的顺序依次解析,遇到新的包就把它放在第一级目录,后面如果遇到一级目录已经存在的包,会先判断该版本,如果版本一样则忽略,否则会按照npm2的方式依次挂在依赖包目录下。

关于扁平的目录结构yarn从出生那天就包含这个特性。yarn 的出现给 npm 带来了巨大的压力,后来,npm 学习了 yarn 先进的理念,不断的对自身进行优化,到了npm6版本,npm几乎完全解决了自身的问题,并拥有了下边的特性:

  1. 目录扁平化
  2. 并行下载
  3. 本地缓存
  4. 使用package-lock记录确切依赖
  5. 增加了大量的命令别名(解决命名不够语义化的问题)
  6. 内置了npx,可以启动本地的CLI工具
  7. 极大的简化了控制台输出

所有《每日一题》的 知识大纲索引脑图 整理在此:https://www.yuque.com/dfe_evernote/interview/everyday
你也可以点击文末的 “阅读原文” 快速跳转


END
愿你历尽千帆,归来仍是少年。
浏览 126
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报