美文网首页
npm vs yarn & npm发展史

npm vs yarn & npm发展史

作者: 一只重拾梦想的小水 | 来源:发表于2019-01-14 14:05 被阅读0次

工具:

depcheck:检查unused package

综述:

npm前期版本问题很多,但没有替代工具

yarn的出现解决了很多问题,变的火热

npm5基本追平yarn

使用建议:npm* -> yarn -> npm5

一、npm早期版本:

由于每个包的依赖都重新安装、放在对应的node_modules下,导致:

目录嵌套层级过深  (触发 windows 文件系统中,文件路径不能超过 260 个字符长的错误)

模块实例无法共享

安装速度过慢: 同步请求

二、npm软链版本:

扁平化安装到同一层,通过软链接方式,从各个包的node_modules指向到根node_modules

好处:

目录简介:解决了1、2问题

安装速度提升:多线程请求

缺点:

npminstall和pnpm包实现,不能保证与npm行为完全一致,有bug要反馈给作者,修复时间难以预计

无法与npm一起用:混用效果奇葩

三、npm3

无冲突的情况下尽量安装到较高的层级,各依赖通过模块引入;但是引入的包版本不同时,将不能放到同一目录

好处:目录层级真正扁平化

缺点:

依赖同一个包的不同版本时,还是要嵌套

安装速度依然不够快

四、yarn

好处:(对比npm)

锁定版本,解决了两次安装版本无法保证一致的问题 (yarn.lock)

解决了安装速度慢的问题 (并行)

离线模式(缓存)

其他好处:

默认安装到dependencies,不需要npm install -s

命令简介、语义化、提示的交互性高 install->add;uninstall->remove;update交互模式选择更新的包

全局模块的管理

npm各个项目下的包安装到一处/usr/lib/node_modules,通过软链接到/usr/local/bin

yarn:所有包安装到一处,很方便的直接备份yarn.lock 到另一处安装还原

缺点

非官方,兼容性较差、更新较慢

五、npm5(2017)

默认package-lock.json 锁定版本

默认安装到dependencies

安装速度提升,较yarn慢一点,可以接收

npm-check替代yarn update

package-lock.json的功能,早在npm5发布之前就存在,npm shrinkwrap,但需要手动生成,所以受众不多

tip:5.0版本存在一个坑:如果已经有package-lock,在package中新增依赖,该包并不会被安装到node_modules,package-lock也不会更新

参考:https://segmentfault.com/a/1190000014716713

命令行对比:https://yarnpkg.com/lang/en/docs/migrating-from-npm/

相关文章

  • npm vs yarn & npm发展史

    工具: depcheck:检查unused package 综述: npm前期版本问题很多,但没有替代工具 yar...

  • [译] 关于 Yarn 和 npm 你所需要知道的一切

    [译] 关于 Yarn 和 npm 你所需要知道的一切 原文地址:Yarn vs npm: Everything ...

  • npm 与 yarn 命令对比

    ### npm 与 yarn 命令对比 |npm|yarn| |---|---| |npm install ...

  • yarn VS npm

    yarn的进步 并行安装,速度较npm快 版本号锁定,完整性检查 缓存机制更好(已安装的包可离线安装)

  • npm vs yarn

    使用初始化某个项目 npm inityarn init默认的安装依赖操作 npm install/linkyarn...

  • Npm vs Yarn

    前端工程化代码一般通过 包(package) (或者称为 模块(module)) 的方式来共享,因此你可以通过它...

  • npm vs yarn

    安装速度 npm npm install的时候巨慢。特别是新的项目拉下来要等半天,删除node_modules,重...

  • npm与Yarn 命令比较

    yarn npm与Yarn 命令比较 npm install ...

  • npm、yarn切换源、加代理

    npm和yarn转换淘宝源和官方源 npm 设置代理 npm 删除代理 yarn 设置代理 yarn 删除代理

  • 命令行报错解决方法

    解决方法:把淘宝源换成原来的源,npm安装的话换成npm的,yarn安装换成yarn的 npm yarn

网友评论

      本文标题:npm vs yarn & npm发展史

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