一个比NPM更快更安全可靠的JavaScript包管理工具——Yarn
Posted 刻刻帝丶
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一个比NPM更快更安全可靠的JavaScript包管理工具——Yarn相关的知识,希望对你有一定的参考价值。
tip:有问题或者需要大厂内推的+我脉脉哦:丛培森 ٩( ‘ω’ )و
【本文源址:http://blog.csdn.net/q1056843325/article/details/54950018 转载请添加该地址】
上一篇简单介绍了NPM包管理工具
在这篇文章中
我想给大家介绍一个取代使用NPM的包管理工具——Yarn
以及它与NPM之间的差异
#简介
这个就是Yarn的logo,应该是一只猫
Yarn的官网:传送门
来到官网,映入眼帘的就是这么几个大字(大单词~)
富强,民主,文明,和谐…
那是不可能的~
这行英语的意思是: 极速、可靠、安全的依赖关系管理
Yarn是Facebook、Google、Exponent和Tilde开发的一款新的javascript包管理工具(开源)
Facebook对于Github的贡献确实是有目共睹的,仅次于微软
开发Yarn意在解决了使用npm时面临的少数问题
- 安装巨慢无比
- npm安装时可以运行代码,不安全
- …
#下载
我的电脑是Windows操作系统
按照官网的说明,下载.msi安装包
下载之前也必须有NodeJS
一步一步next就好了
还有一种方法官网没说直接通过命令行
我也是通过这种方法下载的
输入命令:npm intall -g yarn
不过我是卡了好几遍才下好(网太卡伤不起)
下载完毕后输入命令 yarn --version
查看版本
#使用
使用和npm是类似的
初始化包yarn init
这里我一开始用git bash发现不好使,会报错
后来还是老实的用cmd命令行
其实npm的命令和yarn大多相通的
只需要把npm换成yarn
不过还是有些不同的
添加包依赖使用命令:yarn add <package>
它相当于npm命令:npm install <package> --save
也就是说它会自动将下载包以及版本信息写入package.json的dependencies
"name": "node",
"version": "1.0.0",
"main": "index.js",
"repository": ,
"license": "MIT",
"dependencies":
"react": "^15.4.2"
yarn常用的命令以及和npm的对照如下
|yarn命令|含义|npm命令
|-
|yarn
|根据package.json安装依赖|npm install
|yarn init
|初始化包|npm init
|yarn add <package>
|安装依赖并写入dependencies|npm install <package> --save
|yarn global add <package>
|全局安装依赖并写入dependencies|npm install <package> -g --save
|yarn add <package> --dev/-D
|安装依赖并写入devDependencies|npm install <package> --save-dev
|yarn upgrade <package>
|升级包版本|npm update <package> --save
|yarn remove <package>
|卸载包|npm uninstall <package> --save
更详细的请查看 官方文档
#yarn.lock
当我们下载依赖的时候,会发现目录下多了yarn.lock文件
它是很重要的文件,不要删掉它
转移到其他电脑的时候,要连同package.json和yarn.lock文件一起拷贝
然后输入命令 yarn
下载模块
这个yarn.lock有什么好处呢?
使用NPM的时候,如果拥有相同package.json的两台电脑子安装了不同版本的包
就可能会产生一些问题
而Yarn为了避免包版本的错误匹配,将确定的安装版本固定这个锁文件yarn.lock中
每次添加模块,Yarn就会更新(首次创建)yarn.lock 文件
这样我们转移到其他电脑,也可以匹配为相同版本的模块
避免了版本不同产生的问题
(也就是查看package.json配置文件前,会先查看yarn.lock锁文件)
实际上NPM也可以实现类似的功能
使用 npm shrinkwrap
命令可以生成一个锁文件
但是使用NPM我们每次都需要手动“上锁”
而Yarn会自动更新 yarn.lock
#优势
想谈一谈yarn较npm的优势
把优势放在最后将确实有点奇怪
这也算有使用心得体验的成分
- 急速
- 下载速度真的很快,下载任务是并行下载,而npm是按顺序一个一个下
- 缓存
- 会缓存下载过的包,下载过的包甚至可以离线下载,npm就不能
- 清晰
- 输出不像npm一点儿也不冗余,并且进度条很形象,谁用谁知道
- 安全
- 下载前会检查签名及包的完整性
- 可靠
- 各平台依赖一致性,yarn.lock自动更新
- 优化
- 下载失败自动重新请求,以及对网络资源最大化利用,避免无用请求
综上,Yarn前途无量
(没准未来也会出现cyarn)
以上是关于一个比NPM更快更安全可靠的JavaScript包管理工具——Yarn的主要内容,如果未能解决你的问题,请参考以下文章
nodejs Yarn替代npm的包管理——快速安全可靠性高的依赖管理