Help us understand the problem. What is going on with this article?

yarnのコマンドチートシート

More than 1 year has passed since last update.

yarnのコマンドチートシート

とりあえずよく使いそうなコマンドを列挙しておきます。
まだまだ少ないですが、新しいコマンドを使ったら随時追加していきます。

yarn init

コマンド 説明
yarn init 新規プロジェクト作成
yarn init -y プロジェクト名やVersionの入力を省略して新規作成

yarn add

コマンド 説明
yarn add <package...> パッケージ追加
yarn add <package...>@[version] バージョン指定でパッケージ追加
yarn add <package...>@[tag] タグ指定でパッケージ追加
yarn add <package...> [--dev|-D] devDependenciesにパッケージ追加
yarn add <package...> [--peer|-P] peerDependenciesにパッケージ追加
yarn add <package...> [--optional|-O] optionalDependenciesにパッケージ追加
yarn add <package...> [--exact|-E] バージョンを厳密に指定してパッケージ追加
yarn add <package...> [--tilde|-T] 指定したminorバージョンまでを固定してパッケージ追加

peerDependenciesについて

公式にはreact-domとreactのような依存関係のようなものとあります。
react-domを動かすにはreactが必要で特定バージョンを優先して使用したい場合
などといった場合はこの追加オプションを使用するのだと思います。
※解釈間違っていたらご指摘くださいm(__)m

optionalDependenciesについて

公式には全てのマシンで動作させる必要がない場合とあります。
例としてWatchmanが上がっています。

--exact/-E オプションについて

デフォルトだとmajorバージョンが同一で最新のリリースバージョンが追加されるようになっているので、
特定バージョンのみを追加したい場合はこちらのオプションを使います。
以下具体例になります。

# fooパッケージの最新バージョンは1.9.1とします
# オプション指定なしの場合
$ yarn add foo@1.2.3  # 1.9.1が追加されます

# オプション指定ありの場合
$ yarn add foo@1.2.3 --exact  # 1.2.3が追加されます

--tilde/-T オプションについて

指定したminorバージョンまでを固定してパッケージを追加したい場合に使います。
以下具体例になります。

# fooパッケージに1.2.9と1.3.0(最新)のバージョンが存在するとします
# オプション指定なしの場合
$ yarn add foo@1.2.3  # 1.3.0が追加されます

# オプション指定ありの場合
$ yarn add foo@1.2.3 --tilde  # 1.2.9が追加されます

yarn install

コマンド 説明
yarn install インストール
yarn install --check-files インストール + node_modulesにあるファイルが削除されていないことを確認
yarn install --flat インストール + パッケージ毎に一つのバージョンのみを許可
yarn install --force 強制インストール
yarn install --ignore-scripts インストール + package.jsonに書かれているscriptsは実行しない
yarn install --production[=true|false] インストール + production用インストールをする(しない)の制御

--flatオプション

実行すると以下のように対話モードでバージョンを選択していきます。

$ yarn install --flat
yarn install v0.27.5
info No lockfile found.
[1/4] Resolving packages...
info Unable to find a suitable version for "core-js", please choose one by typing one of the numbers below:
  1) "core-js@^2.5.0, core-js@^2.4.0" which resolved to "2.5.1"
  2) "core-js@^1.0.0" which resolved to "1.2.7"
Answer?: 1

インストールが完了するとpackage.jsonの中はこうなります。
※抜粋

package.json
  "resolutions": {
    "core-js": "2.5.1",
    "strip-ansi": "3.0.1",
    "supports-color": "4.4.0",
    "ansi-regex": "2.1.1",
    "jsesc": "1.3.0",
    "minimist": "0.0.8",
    "acorn": "5.1.2",
    "ajv": "5.2.2",
    "yargs": "8.0.2",
    "inherits": "2.0.3",
    "string_decoder": "0.10.31",
    "punycode": "1.4.1",
    "hash-base": "2.0.2",
    "camelcase": "4.1.0",
    "cliui": "3.2.0",
    "kind-of": "3.2.2",
    "is-number": "2.1.0",
    "string-width": "2.1.1",
    "is-fullwidth-code-point": "2.0.0",
    "assert-plus": "0.2.0"
  }

--productionオプション

このオプションを指定してインストールすると、devDependenciesに記載しているパッケージはインストールされません。なので、production環境にインストールする際にはこちらのオプションをつけてインストールするといいと思います。

また、公式にも書いてありましたが、yarnは通常環境変数のNODE_ENVを見て環境判別をしていて、NODE_ENVproductionが設定されていればこのオプションがなくてもproduction用インストールがされます。

このオプションはNODE_ENVが設定されていてもその設定を無視し、オプションに与えられた設定を優先します。

yarn config

コマンド 説明
yarn config list 現在の設定を表示
yarn config get <key> <key>の設定を標準出力
yarn config set <key> <value> [-g|--global] <key>の設定に<value>を追加
yarn config delete <key> <key>の設定を削除

cacheディレクトリの変更コマンド

yarn config set cache-folder <path>

yarn cache

コマンド 説明
yarn cache list cacheされているパッケージの一覧表示
yarn cache dir cache先のディレクトリパスを表示
yarn cache clean <module_name> のキャッシュ削除

yarn info

コマンド 説明
yarn info <package> <package>の情報を表示
yarn info <package>@[version] <package>の特定バージョンの情報を表示
yarn info <package> [<field>] <package>の<field>情報のみを表示
yarn info <package> --json <package>の情報をjsonで表示

こちらのコマンドは特定パッケージの情報を表示するコマンドですが、
特徴としてローカルにインストールされている必要はないというところです。

field指定サンプル

# reactのdescriptionを見たい時
$ yarn info react description
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした