首先,这两个都属于js包管理工具,均可以安装包或者模块
yarn 是由facebook、google等联合开发推出的
区别:vue
npm 下载包的话 好比npm install
它是按照包的排序,也就是队列挨个下载,一个下载完成后,再下载另外一个
yarn是将要下载的包进行同时下载
yarn 在下载模块或包时,命令行输出的信息更加简洁
npm版本5.0 以后,会自带package.lock.json 文件,该文件主要描述了你项目中安装的包都是哪个版本,你再进行npm install 的话,会安装指定版本的包。
yarn 一直都有lock 文件,功能和npm 的package.lock.json差很少。
命令不一样
npm install == yarn
npm isntall vue == yarn add vue
npm uninstall vue == yarn remove vue
npm update == yarn upgradenode
按照以往,个人步骤都是:react
git clone xxx npm install npm run dev
这时,JJ给我来了下面一段git
git clone xxx yarn yarn start
“咦,yarn是什么鬼?难道npm更高级的替代品?为何要替代npm?难道有什么好的地方?”,心里一连串的问题冒出来。我就默默的问了一下JJ:“yarn是跟npm同样的东西吗?”,“嗯。”JJ忙碌的敲着键盘,显然这个问题不值得继续问下去了。我也默默的把刚才脑子里一连串的问题记了下来。shell
“Yarn是由Facebook、Google、Exponent 和 Tilde 联合推出了一个新的 JS 包管理工具 ,正如官方文档中写的,Yarn 是为了弥补 npm 的一些缺陷而出现的。”这句话让我想起了使用npm时的坑了:npm
npm install
的时候巨慢。特别是新的项目拉下来要等半天,删除node_modules,从新install的时候依旧如此。"5.0.3", "~5.0.3", "^5.0.3"
“5.0.3”表示安装指定的5.0.3版本,“~5.0.3”表示安装5.0.X中最新的版本,“^5.0.3”表示安装5.X.X中最新的版本。这就麻烦了,经常会出现同一个项目,有的同事是OK的,有的同事会因为安装的版本不一致出现bug。json
带着这些坑,我开始了解Yarn的优点及其解决的问题。缓存
npm | yarn |
---|---|
npm install | yarn |
npm install react --save | yarn add react |
npm uninstall react --save | yarn remove react |
npm install react --save-dev | yarn add react --dev |
npm update --save | yarn upgrade |
有了yarn的压力以后,npm作了一些相似的改进。网络
在npm5.0以前,yarn的优点特别明显。可是在npm以后,经过以上一系列对比,咱们能够看到 npm5 在速度和使用上确实有了很大提高,值得尝试,不过尚未超过yarn。工具
综上我我的的建议是若是你已经在我的项目上使用 yarn,而且没有遇到更多问题,目前彻底能够继续使用。但若是有兼容 npm 的场景,或者身处在使用 npm,cnpm,tnpm 的团队,以及尚未切到 yarn 的项目,那如今就能够试一试 npm5 了。
参考文章
原文:https://blog.csdn.net/weixin_39458031/article/details/86254375
原文连接:https://www.jianshu.com/p/254794d5e741