包管理工具 — yarn

1.cnpm存在的问题

  1. 之前在npm更换成淘宝镜像源以及cnpm文章中讲到过,cnpm安装一个模块,会出现2个文件夹,如果同时安装很多模块,会导致文件夹更多的问题。
  2. 之前在package-lock.json文章中讲到过,npm安装可以生成package-lock.json来固定版本,cnpm不支持的问题。

所以,我找到了一个包管理工具——yarn,既能避免npm下载速度过慢问题,又能避免上述cnpm存在的问题,很好的满足了我的需求。

2.包管理工具——yarn

FaceBook 开源的一个新的包管理器, 和npm的作用是一样的,但是解决了一些npm的痛点。如果上面所说的问题(cnpm文件夹过多、cnpm不支持lock文件),以及npm下载慢问题。还有其他优点我就不一一介绍了,可以参[中文文档](https://yarnpkg.com/zh-Hans/)。

3.yarn的安装

  1. 安装node
  2. 如果安装了npm,可以使用npm install -g yarn安装,如果没有,也可以去官网下载安装包来安装
  3. 安装过后 yarn -v 可以查看是否安装成功

4.yarn.lock文件

和package-lock.json文件几乎一样(包括作用、生成位置以及和package.json改动同步更新)。
只有两个区别:

  1. 生成方式(yarn:使用yarn install生成,且生成的是yarn.lock文件,npm:使用npm install生成,且生成的是package-lock.json文件)
  2. yarn.lock和package-lock.json格式不一样。
    我大致截个图,可以看下yarn.lock格式:

5.yarn install安装的目录

使用yarn install安装后的node_modules,和使用npm install安装的node_modules基本一样,并且不存在cnpm多个文件夹的情况,不过yarn会在node_modules中多了个.yarn-integrity文件,里面记录了依赖包的来源等。

6.yarn的常用命令

npm yarn
npm init yarn init
npm install yarn install
npm install --no-package-lock yarn install --no-package-lock
npm install xxx --save yarn add xxx
npm install xxx --save-dev yarn add xxx --dev
npm uninstall xxx --save yarn remove xxx
yarn add xx@version npm install xx@vision
yarn upgrade xx npm update xx
yarn upgrade xx@version npm update xx@vision
yarn why xx -
yarn config list npm config list

注:

  1. 不能使用yarn install xx,会报类似这种错

    error install has been replaced with add to add new dependencies. Run "yarn add lodash" instead.`

  2. 使用yarn why xx命令,可以查看xx模块为什么会别安装(即谁依赖的)。

     //测试moment模块
     $ yarn why moment
    
     //结果
     yarn why v1.16.0
     [1/4] Why do we have the module "moment"...?
     [2/4] Initialising dependency graph...
     [3/4] Finding dependency...
     [4/4] Calculating file sizes...
     => Found "moment@2.24.0"
     info Reasons this module exists
     - "antd" depends on it
     - Hoisted from "antd#moment"
     - Hoisted from "antd#rc-calendar#moment"
     - Hoisted from "antd#rc-time-picker#moment"
     Done in 0.41s.
    
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。