前端 Yarn 包管理器
时间:2016-10-15 12:48:54
作者:zhongxia
也就两三天没有关注前端新技术,FaceBook 就开源了一个新的包管理器,叫做Yarn。 (搞不懂为什么叫这个名字,和大数据的yarn 重名了)
Yarn 开源后,(10.12~10.15 3天)没有多少天就已经有了 13817 star 了。 看来还是很火爆的。
一、Yarn 干嘛的?
yarn 是一个包管理器, 和npm的作用是一样的,但是解决了一些npm的痛点。
在还没包管理器的时候,JS工程师常常依赖于存储在他们项目中或者放在CDN上面的少量代码段。第一个主要的JS包管理器 npm 在Node.js被引用后不久就搭建起来了,并且迅速成为世界上最受欢迎的包管理器之一。上千个新的开源项目被建立了,工程师们也比以往分享了更多的代码。
二、Npm 的痛点
- npm安装依赖包速度慢,(用 国内镜像 cnpm 会快很多)
- 没有网络的时候,不能使用
- 其他未知
那 yarn 解决了上面这些问题了吗?
- yarn 下载速度比 npm 快 3~6倍
- 支持离线下载,下载过的依赖包,会被缓存起来。 下载没有网络的时候也可用
- 安装依赖包的时候,增加了checksums 做了一个安全验证(不太了解具体作用)
小改进
- 增加下载依赖包的时间
- 安装依赖报错,提示哪个包中的那个包 报错了【npm 只告诉一个名字,不好找错误】
三、Yarn 的安装与使用
1. 安装
如果有了npm, 那么安装很简单【有安装nodejs,就会有npm, 所以目前直接使用 npm 安装问题不大】
//使用 npm 来安装
npm install -g yarn
//如果显示了yarn 版本,代表安装成功
yarn --version
2. 初始化
//和 npm init 使用一样
yarn init
3. 安装,更新,移除依赖包
yarn add jquery
yarn add jquery@1.11
yarn upgrade jquery
yarn remove jquery
测试了 --save --save-dev 会报错, 已经已经没有了这两个参数
4. 离线安装
如果之前下载过了,则会缓存起来,缓存起来的可以使用离线安装
yarn add jquery --offline
5. 其他命令
//查看安装的依赖包
yarn ls
//告诉你,为什么一个依赖被安装到项目中
//yarn why [name]
四、yarn.lock
yarn.lock 是使用 yarn 安装依赖的时候,自动生成的文件,不要去编辑它。
这个是用来依赖的正确性,快速可靠安装的;是执行cli的时候自动生成的,在项目的根目录下,需要保留!!!!不要编辑它,这是自动生成的
在其他电脑初始化,必须记得把package.json和yarn.lock复制过去,简直就是秒下载【缓存机制】