前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >新一代包管理工具yarn

新一代包管理工具yarn

作者头像
IMWeb前端团队
发布2019-12-05 13:03:07
1K0
发布2019-12-05 13:03:07
举报
文章被收录于专栏:IMWeb前端团队IMWeb前端团队

本文作者:IMWeb jaychen 原文出处:IMWeb社区 未经同意,禁止转载

yarn(https://github.com/yarnpkg/yarn)

facebook发布的新一代包管理工具,旨在解决以往使用npm作为包管理会遇到的一些问题。从其官方介绍可以看到其重点强调的3个点:快、可靠、安全。

yarn拥有以下6个特性:

  • 离线模式: 一次安装,永久使用,无需下载
  • 依赖确定性:安装依赖锁定,保证一致性
  • 更好的网络性能:下载包,优化网络请求,最大限度提高网络利用率
  • 多注册来源处理:不管依赖包被不同的库间接关联引用多少次,安装这个包时,只会从一个注册来源去装(npm/bower), 防止出现混乱不一致。
  • 网络弹性处理: 安装依赖时,不会因为某个单次网络请求的失败导致整个安装挂掉。当请求失败时会进行自动重试。
  • 扁平模式: 当关联依赖中包括对某个软件包的重复引用,在实际安装时将尽量避免重复的创建

安装方法(https://yarnpkg.com/en/docs/install)

  • 安装方式1: Npm i -g yarn
  • 安装方式2: window下载msi,linux 和 mac 上使用 shell 指令来安装(依赖Node)

使用方法

yarn的命令基本跟npm的大同小异,使用yarn init生成package.json文件,用yarn add 和 yarn add —dev 分别替换 npm install --save 和 npm install --dev 命令即可。具体命令可以参考(https://yarnpkg.com/en/docs/cli/)

执行yarn / yarn install 解析package.json时,分为4个步骤:

  • 依赖关系解析:yarn在解析package.json文件时,会对其每个依赖包进行遍历分析生成yarn.lock文件。该文件描述了项目中每个包以及每个包中所依赖的包的版本信息。
  • 包下载:根据第一步中解析的结果下载特定版本的包。如果该包曾经被下载过,则跳过此次的下载操作,直接使用本地缓存,即yarn的离线模式特性。
  • 包关联:关联拷贝下载或者缓存在全局的包到项目。
  • 包编译:编译项目中使用到的包。

yarn.lock(该文件用于锁定包版本已保障每次编译的结果一致,也可通过yarn install --no-lockfile 命令设置不生成yarn.lock文件):

yarn & npm 常用命令比较

  • npm install === yarn / yarn install
  • npm install xxx —save === yarn add xxx
  • npm uninstall xxx —save === yarn remove xxx
  • npm install xxx —save-dev === yarn add xxx —dev
  • npm update === yarn upgrade
  • npm install xxx -g === yarn global add xxx

当然,在比较选择yarn与npm时,速度也是一个很重要的衡量指标。

yarn & npm 速度比较

使用注意

  • yarn 原仓库 包下载不 稳定 需要设置仓库为tnpm 或在 cnpm yarn config set registry “https://registry.npm.taobao.org
  • script run 有时会存在异常问题

总结

  • yarn 相比 npm 最直观优势就是快
  • 目前项目在基本可以无痛迁移使用。
  • yarn 目前并不是非常稳定,不少反馈script run以及下载包有问题。
  • lock功能具有双面性,是否锁定版本需要看具体情况而定
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016-11-07 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • yarn(https://github.com/yarnpkg/yarn)
  • yarn拥有以下6个特性:
  • 安装方法(https://yarnpkg.com/en/docs/install)
  • 使用方法
  • yarn & npm 常用命令比较
  • yarn & npm 速度比较
  • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档