Edited at

yarnチートシート

More than 1 year has passed since last update.

webpackに引き続き、Railsが推してるフロントパッケージマネージャのyarnを調べてみました。npmも慣れてきたんで変えるのやだなー、と思ってたのですが互換性高くて移行しやすいし、動作も速くていい感じです。


概要

yarn = フロント(js)のパッケージマネージャ


  • Facebook発、オープンソース、BSDライセンス



  • npmと互換性がある


    • npmと同じpackage.json, node_modules/で構成される

    • コマンドも似ている




  • バージョンの厳密な管理ができる



    • 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]
パッケージがインストールされた経緯を表示


参照