美文网首页
npm vs yarn

npm vs yarn

作者: liuniansilence | 来源:发表于2021-01-29 11:58 被阅读0次

安装速度

npm

npm install的时候巨慢。特别是新的项目拉下来要等半天,删除node_modules,重新install的时候依旧如此。

yarn

并行安装:无论 npm 还是 Yarn 在执行包的安装时,都会执行一系列任务。npm 是按照队列执行每个 package,也就是说必须要等到当前 package 安装完成之后,才能继续后面的安装。而 Yarn 是同步执行所有任务,提高了性能。
离线模式:如果之前已经安装过一个软件包,用Yarn再次安装时之间从缓存中获取,就不用像npm那样再从网络下载了。

安装版本统一

npm

安装的时候无法保持一致性。由于package.json文件中版本号的特点,下面三个版本号在安装的时候代表不同的含义。

"1.1.3",
"~1.1.3",
"^1.1.3"

第一个表示精确版本;
第二个表示1.1.x小版本里的最新版本;
第三个表示1.x.x版本里的最新版本;

不过npm 5.0以后,已经引入了package-lock.json,类似yarn.lock功能。

yarn

为了防止拉取到不同的版本,Yarn 有一个锁定文件 (lock file) 记录了被确切安装上的模块的版本号。每次只要新增了一个模块,Yarn 就会创建(或更新)yarn.lock 这个文件。这么做就保证了,每一次拉取同一个项目依赖时,使用的都是一样的模块版本。

npm 其实也有办法实现处处使用相同版本的 packages,但需要开发者执行 npm shrinkwrap 命令。这个命令将会生成一个锁定文件,在执行 npm install 的时候,该锁定文件会先被读取,和 Yarn 读取 yarn.lock 文件一个道理。npm 和 Yarn 两者的不同之处在于,Yarn 默认会生成这样的锁定文件,而 npm 要通过 shrinkwrap 命令生成 npm-shrinkwrap.json 文件,只有当这个文件存在的时候,packages 版本信息才会被记录和更新。

安装信息的输出

npm

安装的时候,包会在同一时间下载和安装,中途某个时候,一个包抛出了一个错误,但是npm会继续下载和安装包。因为npm会把所有的日志输出到终端,有关错误包的错误信息就会在一大堆npm打印的警告中丢失掉,并且你甚至永远不会注意到实际发生的错误。
其他正常安装的package,控制台会不断地打印出所有被安装上的依赖。

yarn

Yarn 相比npm简洁太多。默认情况下,结合了 emoji直观且直接地打印出必要的信息,也提供了一些命令供开发者查询额外的安装信息。

基本命令对比

npm命令 yarn命令 描述
npm init yarn init 初始化一个新项目
npm install yarn install 根据pageage.json来安装项目
npm install --global [package] yarn global add [package] 全局安装一个package
npm install [--save]/[--save-dev] yarn add /[-dev] 添加项目依赖/开发依赖
npm run yarn run 运行package.json中的script

相关文章

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

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

  • 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 命令对比

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

  • npm与Yarn 命令比较

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

  • npm、yarn切换源、加代理

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

  • NPM vs Yarn ?(工具类)

    一、Bower Bower大部分情况下用于前端开发,bower 能依据配置文件自动下载相关依赖,非常方便,这也是推...

  • npm vs yarn & npm发展史

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

网友评论

      本文标题:npm vs yarn

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