最近安装某些模块的时候发现,只有 yarn 的安装方式。
于是乎就使用了,但是不明白他与传统的npm的区别是什么,
所以整理了一些资料,也供各位区别和参考。
简介
npm:基于node.js的包管理工具;
常用命令 npm install 包名;
缺点:因服务器在国外,所以下载包的速度超级慢,所以出现了cnpm和yarn
cnpm:
跟npm是一样的,这是淘宝出的下载工具,服务器在国内,所以下载速度比npm快很多,但是安装有点乱,并且容易出错;
cnpm install 包名
安装cnpm
npm install -g cnpm --registry=https://registry.npm.taobao.org
yarn:
“Yarn是由Facebook、Google、Exponent 和 Tilde 联合推出了一个新的 JS 包管理工具 ,正如官方文档中写的,Yarn 是为了弥补 npm 的一些缺陷而出现的
速度对比
耗时从少到多:
cnpm:
cnpm install vue-vli --save
用时:41600ms,包数量:1508
yarn:
yarn add vue-cli
用时:181200ms,包数量:742
npm:
npm install vue-cli --save
用时:362400.5ms,包数量:727
结论:
cnpm虽然是最快的,不过有很多同行吐槽它的包文件过多和凌乱,包括其他一些问题(安装会出错等,我也遇到过几次),因此国内有一些大的团队在内部并不使用cnpm。
npm的未来:npm5.0
有了yarn的压力之后,npm做了一些类似的改进。
默认新增了类似yarn.lock的 package-lock.json;
1.git 依赖支持优化:这个特性在需要安装大量内部项目(例如在没有自建源的内网开发),或需要使用某些依赖的未发布版本时很有用。在这之前可能需要使用指定 commit_id 的方式来控制版本。
2.文件依赖优化:在之前的版本,如果将本地目录作为依赖来安装,将会把文件目录作为副本拷贝到 node_modules 中。而在 npm5 中,将改为使用创建 symlinks 的方式来实现(使用本地 tarball 包除外),而不再执行文件拷贝。这将会提升安装速度。目前yarn还不支持。
网友评论