美文网首页
npm与yarn

npm与yarn

作者: 书虫和泰迪熊 | 来源:发表于2019-01-09 19:49 被阅读0次

    yarn是由Facebook,Google,Exponent,Tilde联合推出的一个新的JS包管理工具,yarn是为了弥补npm的一些缺陷而出现的。

    npm的一些坑

    (1). npm install 巨慢,特别是新的项目拉下来要等半天,删除node_modules,重新install的时候依旧如此。
    (2). 同一个项目安装时无法保证一致性。由于package.json文件中版本号的特点,下面三个版本号在安装的时候代表不同的含义
    -"5.0.3" : 表示安装指定的5.0.3版本;
    -"~5.0.3" :表示安装新的版本;
    -"^5.0.3" :表示安装5.X.X中最新的版本,
    这样就麻烦了,常常出现在同一个项目中,有的同事是ok的,有的同事会由于安装的版本不一致出现bug。
    (3). 安装的时候,包会在同一时间下载和安装,中途某个时候,一个包抛出错误,但是npm会继续下载和安装包。因为npm会把所有日志输出到终端,有关错误包的信息就会在一大堆npm打印的警告中丢失掉,并且你不会注意到实际发生的错误。
    带着而这些坑,开始了yarn的优势及其解决的问题

    yarn的优点

    (1). 速度快
    · 并行安装
    · 离线模式
    (2). 安装版本统一
    (3). 更简洁的输出
    (4). 多注册来源处理
    (5). 更好的语义化

    1. yarn和npm命令对比
    npm yarn 功能
    npm install xxx --global(-g) yarn global(-g) add xxx 全局安装依赖包
    npm install yarn install 根据package.json安装项目所需的依赖包
    npm update --global(-g) yarn global(-g) upgrade 全局更新依赖包
    npm install --save-dev yarn add xxx --dev 安装所需的依赖包,并将该包的记录写到package.json文件的 devDependencies 选项中
    npm uninstall xxx yarn remove xxx 卸载
    npm version major yarn version --major 更新依赖包的版本
    1. npm的的未来:npm5.0
      有了yarn的压力后,npm做了相应的改进
      (1). 默认增加了类似于yarn.lock的package-lock.json
      (2). git依赖支持优化:这个特性在需要安装大量内部项目(例如在没有自建源的内网开发),或需要使用某些依赖的未发布版本时很有用。在这之前可能需要使用指定 commit_id 的方式来控制版本。
      (3).文件依赖优化:在之前的版本,如果将本地目录作为依赖来安装,将会把文件目录作为副本拷贝到 node_modules 中。而在 npm5 中,将改为使用创建 symlinks 的方式来实现(使用本地 tarball 包除外),而不再执行文件拷贝。这将会提升安装速度。目前yarn还不支持。

    相关文章

      网友评论

          本文标题:npm与yarn

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