webpackに引き続き、Railsが推してるフロントパッケージマネージャのyarnを調べてみました。npmも慣れてきたんで変えるのやだなー、と思ってたのですが互換性高くて移行しやすいし、動作も速くていい感じです。
概要
yarn = フロント(js)のパッケージマネージャ
-
Facebook発、オープンソース、BSDライセンス
-
npmと互換性がある
- npmと同じ
package.json
,node_modules/
で構成される - コマンドも似ている
- npmと同じ
-
バージョンの厳密な管理ができる
-
package.json
でバージョンそのものではなく、許容するバージョンの範囲を指定する - 実際にインストールされた際のバージョンは
yarn.lock
に記録され、別マシンで再現可能になる
-
-
npmに比べて高速に動作する
導入
Homebrewあるいはnpmでインストールできる。
# Homebrewから
$ brew install yarn
# npmから
$ npm --global install yarn
npmとの対応
公式によく使うnpmコマンドとの対応一覧があるので参照のこと。
上記のリストに加えて自分がよく使いそうなコマンドを抜粋:
npm | yarn | 機能 |
---|---|---|
npm init |
yarn init |
管理を開始(インタラクティブ) |
npm init -y |
yarn |
管理を開始(即時) |
npm install |
yarn install |
記録されたパッケージをインストール |
npm install --save [package@version] |
yarn add [package@version] |
インストール + 記録 |
npm install --save-dev [package] |
yarn add --dev [package] |
開発環境にのみインストール + 記録 |
npm install --global [package] |
yarn global add [package] |
グローバルにインストール |
npm uninstall --save [package] |
yarn remove [package] |
パッケージと記録を削除 |
npm uninstall --save-dev [package] |
yarn remove [package] |
開発環境のパッケージと記録を削除 |
npm update --global |
yarn global upgrade |
グローバルのパッケージ全体を更新 |
rm -rf node_modules && npm install |
yarn upgrade |
ローカルのパッケージ全体の更新 |
npm update [package] |
yarn upgrade [package] |
ローカルのパッケージの更新 |
npm cache clean |
yarn cache clean |
キャッシュクリア |
npm info [package] |
yarn info [package] |
パッケージ情報の表示 |
npm outdated |
yarn outdated |
古いパッケージ一覧の表示 |
npm run [script] |
yarn run [script] |
package.json内のscriptに定義されたスクリプトを実行 |
npm search [package] |
なし?yarn info [package] で一応調べられる |
パッケージのバージョン一覧の取得 |
package.jsonに記録しないでインストールするnpm install
に相当する機能はなくなった。パッケージの管理が常に記録されるようになって厳密さが増してる感がある。
yarn独自の機能
コマンドの一覧は公式のリファレンスを参照のこと。
便利そうなyarn独自(と思われる)コマンドを抜粋:
yarn | 機能 |
---|---|
yarn check |
package.jsonの内容を検証する |
yarn create [kit] [project] |
[kit] に規定の方法でプロジェクトを新規作成する。(react-app など) |
yarn licenses ls |
インストール済みパッケージのライセンス一覧を表示 |
yarn versions |
関連するミドルウェアのバージョン表示 |
yarn why [package] |
パッケージがインストールされた経緯を表示 |