## 入门

### Yarn 与 npm 命令比较

npm(v5) | yarn | 说明
--- | --- | ---
`npm install` | `yarn add`, `yarn` | 安装依赖
`npm init` | `yarn init` | 创建 `package.json` 文件
`npm install gulp --save` | `yarn add gulp` | 安装 `gulp` 包
`npm install gulp --save-dev --save-exact` | `yarn add gulp --dev --exact` |
`npm install -g gulp` | `yarn global add gulp` |
`npm update` | `yarn upgrade` |
`npm cache clean` | `yarn cache clean` | 清理缓存目录
`./node_modules/.bin/gulp` | `yarn run gulp` |

npm (备忘清单) 和 Yarn 有很多相似之处

### yarn install

    --no-lockfile # 不要读取或生成 yarn.lock 锁定文件
    --pure-lockfile
    --frozen-lockfile
    --silent
    --offline
    --update-checksums
    --check-files
    --flat
    --force
    --ignore-scripts
    --modules-folder <path>
    --production[=true|false]

这些选项可用于 `yarn install`

### yarn add

在 devDependencies 中安装一个或多个包

    --dev, -D

在 peerDependencies 中安装一个或多个包

    --peer, -P

在 optionalDependencies 中安装一个或多个包

    --optional, -O

更改包版本

    --exact, -E # 将包安装为精确版本
    --tilde, -T # 安装有相同次要版本的包的最新版本

这些选项可用于 `yarn add`.

### Workspaces

在 `package.json` 中 workspaces 配置:

    "workspaces": [
      "packages/*"
    ]

    jest/
    ├─ package.json
    └─ packages/
       ├─ jest-matcher-utils/
       │  └─ package.json
       └─ jest-diff/
          └─ package.json

(1.0 新增)允许 monoreso 相互共享包。另见：介绍工作空间

### 选择性版本解析

在 `package.json` 中 `resolutions` 配置:

    "resolutions": {
      "**/sass-brunch/node-sass": "4.5.2"
    }

另见：选择性版本解析。(1.0 新增)允许您指定子依赖项的版本

### Create

    yarn create react-app hello

安装 `create react app` 并运行它 See: yarn create

## 示例

### 安装包

    # 将包添加到“dependencies”
    $ yarn add <package>
    # 将包添加到“devDependencies”
    $ yarn add -D <package>
    # 将软件包添加为确切版本
    $ yarn add -E <package>
    # 在您的操作系统上全局安装软件包
    $ yarn global add <package>

### 移除包

    $ yarn remove <package>

从所有类型的依赖项中删除包

### 查看包

    # 列出已安装的软件包
    $ yarn list
    # 列出顶级安装包
    $ yarn list --depth=0
    # 列出已安装的顶级全局包
    $ yarn global list --depth=0
    # 列出带有过滤字符串和深度级别的包
    $ yarn list --pattern "gulp|grunt" --depth=1

### 清除

    # 从包依赖项中清理并删除不必要的文件
    $ yarn autoclean
    # 检查过时的包依赖项
    $ yarn outdated

### 信息

    $ yarn why <query>
    $ yarn why jest

显示有关安装软件包的原因的信息

### 清理缓存

运行此命令将清除全局缓存。 下次运行 `yarn` 或 `yarn install` 时，它将再次填充

    $ yarn cache clean

此外，您可以指定一个或多个要清理的包

## 另见

- npm 备忘清单
- Yarn 官方文档网站
- Yarn 2 中文文档网站
- Yarn 1 中文文档网站 (bootcss.com)