Edited at

Yarnのインストールとよく使うコマンド

More than 1 year has passed since last update.

npmも最近は、ほぼyarnと同じような仕様・挙動になったので、npmでもいいんだと思いますが、

自分はnpmでいろいろコケたりしたあとでyarnに変えてだいぶ楽になったこともあって、いまもyarnを使っています。(猫好き)

性能的にもいまやほとんどnpmおYarnに肉薄してるらしいですが、巷の検証記事とかを読む限りは、Yarnのほうが、まだ若干早かったり、データサイズが軽かったりするっぽい。(感覚値。真面目に検証はしてないです)

コマンドもすっきりしていて楽チンな印象。

使うひとが増えてくれるかなということで、ゆるく使っている自分の認識をまとめてみます。


Yarnのインストール

ほぼほぼここに書いてある通りですが。

https://yarnpkg.com/ja/docs/install

brew install yarn

Homebrewからインストールできます。

自分の場合は n というNode.jsのバージョンを管理するツールを入れてるので

brew install yarn --without-node

というオプション付きでインストールしました。


おまけ:Node.jsバージョン管理ツール「n」について

Node.jsでNode.jsのバージョンを切り替えるという不思議なツール。

下記の記事を参考してインストールしました。

Node.jsのバージョンをさくっと切り替えられるので便利です。

nodeのバージョンをnで管理する - Qiita


install

yarn

または

yarn install

package.jsonに書かれたパッケージをよしなにインストールしてくれます。

https://yarnpkg.com/ja/docs/cli/install


add

yarn add パッケージ名

任意のパッケージをインストール。

https://yarnpkg.com/ja/docs/cli/add

--dev オプションをつけるとpackage.jsonのdevDependenciesのほうに、オプションなしだとdependenciesのほうにパッケージ名とバージョンが追記されます。

つくるものはWebサイトとかが多いので、jQueryみたいなサイトの動作に直接必要なものはオプション無しでインストールして、gulpとか開発のためのツールは--devオプションつけてインストールしてますが、ただWebサイト作ってる分には全部オプション無しとかでも、ほぼ実害はないはず。。(自分は気持ち悪いので自分なりの解釈で分けていますが)

参考: ちゃんと使い分けてる? dependenciesいろいろ。 - Qiita

https://qiita.com/cognitom/items/acc3ffcbca4c56cf2b95


outdated

yarn outdated

巷の最新バージョンと、現在インストールされているバージョンを比べてふるいものをリストアップして表示してくれます。

こんな感じです。

Screen Shot 2018-06-08 at 7.46.27.png

赤い色で表示されたパッケージはメジャーバージョンアップなど大きな仕様変更が入っているもので、後述のupgradeコマンドを実行してもバージョンアップされません。


upgrade

yarn upgrade

古いバージョンのパッケージを上書きしてくれます。

yarn upgrade --latest

というように、--latestオプションをつけると、前述のoutdatedコマンドで赤い文字で表示されたメジャーバージョンアップも反映され、package.jsonに記載されたバージョン番号も最新のものに書き換えられます。

(動作になにかしら影響が出るので可能性が高いので、--latestオプションは、その辺り注意が必要)


remove

yarn remove パッケージ名

パッケージをアンインストール


run

yarn run コマンド名

または

yarn コマンド名

package.jsonのscriptsっていうところで定義したコマンドを実行できます。

いわゆる npm scripts というやつで、gulpとかつかわずとも簡単な処理はこれで作れます。

npm-scriptsについて - Qiita

https://qiita.com/axross/items/a2a0d148e40b66074858

yarnの機能というよりはnpmの機能かなという気もしますが、厳密にはyarnのrunはnpmのそれとちょっと違うらしいです。

yarn run が便利 - Qiita

https://qiita.com/y13i/items/27d39edac23b7a867935