JavaScript
YARN
yarnpkg

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

参照