首页 > 网站 > WEB开发 > 正文

一个比NPM更快更安全可靠的JavaScript包管理工具——Yarn

2024-04-27 15:19:14
字体:
来源:转载
供稿:网友

上一篇简单介绍了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前途无量

==主页传送门==


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表