Yarn
npm パッケージのマネージャー。npm
コマンドの代替として使用する。
公式サイト:
インストール
Windows
latest.msi
をダウンロードして実行する。
→ Yarn [Official] (latest.msi)
参考:
Installation | Yarn [Official]
Installation | Yarn Classic [Official]
使い方
参考:
Yarn の導入/コマンド/試した感想など | Snaplog
概要
参考:
npm から乗り換えてわかった Yarn の4つのメリット – Qiita
そろそろ Yarn を使ってもいいんじゃない? | mille-feuille code
yarn install
package.json
ファイルの情報を元に、依存関係にあるパッケージを node_modules
フォルダにインストールする。
$ yarn install
オプション:
--check-files
:削除されたファイルやフォルダを再インストールする--force
:既にインストールされているパッケージも強制的に再取得する
パッケージを再インストールするには、パッケージのフォルダ、もしくは node_modules
フォルダを削除して、yarn install --check-files
を実行する。
参考:
Yarn のキャッシュを理解して node_modules を正しく更新する | さかなソフトブログ
How do I force Yarn to reinstall a package? – Stack Overflow
yarn install --flat
参考:
Yarn: A package manager for Node.js | Pluralsight
Is there a Yarn equivalent for “npm dedupe”? – Stack Overflow
yarn add
パッケージを追加する。
$ yarn add chalk
オプションで依存関係のタイプを指定してパッケージを追加する。
--dev
:devDependencies
に追加する--peer
:peerDependencies
に追加する--optional
:optionalDependencies
に追加する
参考:
yarn add | Yarn Classic [Official]
Managing Dependencies | Yarn Classic [Official]
GitHub リポジトリにあるパッケージを追加する
GitHub の URL を指定してパッケージを追加する。
$ yarn add https://github.com/user/repo#tag
参考:
npm install/yarn add でブランチを指定する – Qiita
Github にあげた個人の npm パッケージをインストールする方法 – Qiita
yarn で github のプライベートリポジトリを add する簡単な方法 | polidog lab++
yarn add | Yarn Classic [Official]
How to install package from github repo in Yarn – Stack Overflow
ローカルのパッケージをデバッグする
参考:
yarn link | Yarn Classic [Official]
How do I force Yarn to reinstall a package? – Stack Overflow
yarn list
インストールされているパッケージを一覧表示する。
$ yarn list
深さやパターンを指定して一覧を表示する。
$ yarn list --depth=0 --pattern=stylelint
--depth
:依存関係の深さを指定する
--pattern
:パターンを指定する
参考:
yarn list | Yarn Classic [Official]
How to list and use packages in Yarn 2? – Stack Overflow
yarn bin
実行ファイルへのシンボリックリンクが配置されるディレクトリのパスを表示する。
$ yarn bin /path/to/node_modules/.bin
インストールされたパッケージのコマンド一覧を確認する。
$ ls $(yarn bin)
参考:
yarn bin | Yarn Classic [Official]
yarn global
システムにインストールされたパッケージをリストする。
$ yarn global list
システムにパッケージをインストールする。
$ yarn global add vtop
パッケージをアンインストールする。
$ yarn global remove vtop
実行ファイルへのシンボリックリンクが配置されるパスを表示する。
$ yarn global bin
パッケージのインストール先を表示する。
$ yarn global dir
参考:
yarn global add したパッケージのパスを通す – Qiita
npm や yarn のグローバルインストール先 | カンタロー CGI
Windows での npm と yarn でのグローバルインストール時の保存パスの違い | deezus blog
global binaries don’t install on mac os sierra · Issue #1321 · yarnpkg/yarn – GitHub
Where does yarn store global packages (lib not bin) · Issue #2049 · yarnpkg/yarn – GitHub
Yarn global command not working – Stack Overflow
Yarn package won’t upgrade globally (after migrating from NPM) – Stack Overflow
yarn global list が全てのパッケージをリストしない
yarn global dir
が示すディレクトリの package.json
を参照する。
$ cat "$(yarn global dir)/package.json"
Windows の場合は、type
コマンドで表示する。
>type "%LOCALAPPDATA%\Yarn\Data\global\package.json"
参考:
npm や yarn のグローバルインストール先 | カンタロー CGI
Where does Yarn add global binaries on Windows? – Stack Overflow
yarn upgrade
参考:
yarn upgrade | Yarn [Official]
yarn info
参考:
yarn why
参考:
yarn licenses
参考:
yarn licenses | Yarn [Official]
yarn run
参考:
yarn exec
コマンドを実行する。スクリプトが存在しても実行されることはない。
参考:
yarn/exec.js at v1.15.2 · yarnpkg/yarn – GitHub
yarn equivalent of npx ? · Issue #3937 · yarnpkg/yarn – GitHub
-s / --silent
yarn
コマンドによる出力を抑制する。yarn run
コマンド実行時、scripts
のログは出力される。
参考:
Add `--silent` flag to CLI run command · Issue #788 · yarnpkg/yarn – GitHub
Add silent flag to allow raw output by rafaelrinaldi · Pull Request #2420 · yarnpkg/yarn – GitHub
Add silent flag to allow raw output (#2420) · yarnpkg/yarn@15faf3a – GitHub
yarn audit
脆弱性のあるパッケージがインストールされていないか確認する。
$ yarn audit
参考:
is there a yarn alternative for npm audit? – Stack Overflow
yarn dedupe
明示的な dedupe
は不要。yarn install
の実行時に自動的に dedupe
が行われる
参考:
Don’t understand Yarn check warning – Stack Overflow
設定ファイル (.yarnrc)
yarn config
コマンドによって構成できる。
現在の構成を表示する。
$ yarn config list
参考:
yarnpkg は ~/.yarnrc を見ている | HappyGoLucky
peerDependencies
参考:
Dependencies Done Right | Yarn Blog [Official]
Yarn incorrectly warns about unmet peer dependencies · Issue #5347 · yarnpkg/yarn – GitHub
What does ‘has unmet peer dependency’ mean when installing a package with yarn? – Stack Overflow
パッケージを検索する
Yarn にパッケージを検索する機能はないので、代わりに npm search
コマンドを使う。
$ npm search webpack
Windows に Yarn をインストールする
Yarn v1
次のいずれかの方法で Windows に Yarn をインストールする。
- 公式サイトで配布されているインストーラーをダウンロードして実行する。
- Chocolatey でインストールする。(
choco install yarn
を実行する。) - Scoop でインストールする。(
scoop install yarn
を実行する。)
参考:
Installation | Yarn [Official]
Installation | Yarn Classic [Official]
Mac に Homebrew で Yarn をインストールする
Yarn v1
brew
コマンドで Yarn をインストールする。
$ brew install yarn
参考:
brew install yarn --without-node しても node がインストールされる。- Qiita
Installation (Mac) | Yarn Classic [Official]
Brew install yarn --without-node busted? | Homebrew [Official]
Yarn formula has no --without-node option · Issue #6946 · yarnpkg/yarn – GitHub
Homebrew で入れた Yarn をバージョンアップする
brew
コマンドで Yarn のバージョンを更新する。
$ brew upgrade yarn
参考:
yarn のアップデートコマンド yarn self-update でバージョンアップができない – Qiita
CentOS にインストールする
参考:
How to Install Yarn on CentOS & Fedora | TecAdmin
Installation (CentOS) | Yarn Classic [Official]
Node.js を指定する
参考:
Ability to specify location of Node in .yarnrc · Issue #4780 · yarnpkg/yarn – GitHub
Node バージョンの不適合エラー
Node エンジンのバージョンが不適合である旨のエラーが発生する。
The engine "node" is incompatible with this module.
エンジンバージョンの不適合エラーを無視してインストールする。
$ yarn install --ignore-engines
参考:
Yarn 1.6.0 (Node.js 10) でのインストールエラー | T-CREATOR
使っている node のバージョンが対象外で yarn 時にエラーになる | nju33
yarn add で webpack を追加する時にエラーが出た話 | 下手の横好き
The engine “node” is incompatible with this module. エラーの解決方法 | ハトらぼ
DeprecationWarning: Buffer is deprecated
参考:
Replace use of deprecated/unsafe new Buffer constructor · Issue #5477 · yarnpkg/yarn – GitHub
Node 10
参考:
Does not support NodeJs 10. · Issue #5727 · yarnpkg/yarn – GitHub
upath のインストールが Node 10 でエラーになる
upath
を依存関係に含むパッケージを Node 10 で使用すると Node エンジンのバージョン不適合エラーが発生する。
upath@1.0.2: The engine "node" is incompatible with this module. Expected version ">=4 <=9". Got "10.13.0"
エンジンのチェックをせずにインストールする。
$ yarn install --ignore-engines
参考:
Incompatible with Node.js v10 · Issue #14 · anodynos/upath – GitHub
caniuse-lite is outdated ワーニング
caniuse-lite
のバージョンが古いという旨の警告が発生する。
Browserslist: caniuse-lite is outdated
対処法:
yarn.lock
及び node_modules
を削除して、全てのパッケージをインストールし直す。
$ rm yarn.lock $ rm -rf node_modules $ yarn install
参考:
Browserslist: caniuse-lite is outdated · Issue #1184 · postcss/autoprefixer – GitHub
How to upgrade indirect dependencies? · Issue #4986 · yarnpkg/yarn – GitHub
Yarn 2
参考:
Yarn v2 こと Berry を試してみている – Qiita
Yarn を Yarn 2 にアップグレードした話 | holly
Yarn を v1 から v2 へ移行する | kkoudev
Yarn v2 にまつわる誤解 | Wantedly Engineer Blog
Yarn 2 への移行 | Heroku Dev Center
Yarn は global での利用を推奨しない | あーありがち
Introducing Yarn 2 ! | Maël Nison
Hello Yarn 2, Goodbye node_modules | Friedrich Politz
ドキュメント
Introduction | Yarn [Official]
Documentation | Yarn Classic [Official]
リポジトリ
yarnpkg/berry: Active Development Trunk for Yarn – GitHub
yarnpkg/yarn: Fast, Reliable, and Secure Dependency Management – GitHub
yarn-deduplicate
リポジトリ:
atlassian/yarn-deduplicate: Deduplication Tool for yarn.lock Files – GitHub
入手:
参考:
yarn-deduplicate で yarn.lock の重複エントリを最適化する | Islands in the byte stream