美文网首页
npm与yarn的区别

npm与yarn的区别

作者: XKolento | 来源:发表于2019-08-09 15:51 被阅读0次

    最近安装某些模块的时候发现,只有 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还不支持。

    相关文章

      网友评论

          本文标题:npm与yarn的区别

          本文链接:https://www.haomeiwen.com/subject/rjrhjctx.html