Yarnとは
Yarnは、2016年10月にFacebookによって開発・リリースされた、JavaScript用の高速で信頼性が高く、セキュリティの強化されたパッケージマネージャです。npm(Node Package Manager)の代替となるもので、特に速度、セキュリティ、一貫性などの問題を解決します。
Yarnは、package.json
ファイルを介してJavaScriptプロジェクトの依存関係を管理します。npmレジストリからパッケージをインストール、更新、管理するだけでなく、他のパッケージレジストリも使用できます。
Yarnの使い方
Yarnのインストール
Yarnを使用する前に、システムにインストールする必要があります。npmがインストールされている場合は、次のコマンドを使用してYarnをグローバルにインストールできます。
$ npm install -g yarn
このコマンドにより、Yarnがシステム全体にグローバルにインストールされ、どのディレクトリからでもアクセスできるようになります。
Yarnをインストールしたら、次のコマンドでインストールを確認し、バージョンを確認できます。
$ yarn --version
このコマンドにより、現在システムにインストールされているYarnのバージョンが表示されます。
Yarnを使った新しいプロジェクトの作成
Yarnを使用して新しいプロジェクトを作成するには、まずプロジェクトを作成するディレクトリに移動します。次に、yarn init
コマンドを使用します。このコマンドにより、プロジェクトの依存関係を管理するために使用される新しいpackage.json
ファイルが作成されます。
$ yarn init
プロジェクトに関するいくつかの質問(プロジェクトの名前、バージョン、説明、エントリーポイントなど)が表示されます。これらのいずれかについて自信がない場合は、Enterキーを押してデフォルトを受け入れることができます。
依存関係の追加
プロジェクトに依存関係を追加するには、yarn add
コマンドにパッケージ名を続けます。例えば、express
パッケージをインストールするには、次のように実行します。
$ yarn add express
このコマンドにより、express
がpackage.json
ファイルのdependencies
に追加され、node_modules
フォルダにexpress
パッケージがインストールされます。特定のバージョンのパッケージをインストールする場合は、次のようにバージョン番号を指定できます。
$ yarn add express@4.17.1
開発にのみ必要なパッケージ(テストライブラリなど)を開発依存関係として追加するには、-D
フラグを使用します。
$ yarn add -D jest
このコマンドにより、jest
がpackage.json
ファイルのdevDependencies
に追加されます。
グローバルに依存関係を追加
システム全体にパッケージをインストールするには、yarn add
コマンドでglobal
キーワードを使用します。
$ yarn global add [package-name]
パッケージのアップグレード
パッケージをアップグレードするには、yarn upgrade
コマンドに続けてパッケージ名を使用します。
$ yarn upgrade [package-name]
パッケージの削除
プロジェクトからパッケージを削除するには、yarn remove
コマンドに続けてパッケージ名を使用します。
$ yarn remove [package-name]
スクリプトの実行
package.json
ファイルでスクリプトが定義されている場合は、yarn run
コマンドにスクリプト名を続けて実行できます。
$ yarn run [script-name]
Yarn.lockファイル
yarn.lock
ファイルは、Yarnで管理されたプロジェクトの重要なコンポーネントです。このファイルは、依存関係が追加されると自動的に生成され、異なる環境でのパッケージのインストールの一貫性を確保します。
Yarnが依存関係を追加するとき、yarn.lock
を使用してパッケージの正確なバージョンとその依存関係をロックします。これにより、ロックファイルが作成された後にリリースされたマイナーやパッチのアップデートを含め、全てのインストールが同一になります。
この決定論的なアプローチにより、プロジェクトは全てのマシンで同じように動作するため、「私のマシンでは動作する」といった問題を減らすことができます。また、開発者は同じパッケージバージョンを使用していることが保証されるため、問題のデバッグが容易になります。
Yarn.lockファイルの読み方
yarn.lock
ファイルは、パッケージ名とバージョンを正確なインストールされたバージョンにマップするテキストファイルです。次に、表示される例を示します。
commander@2.20.0:
version "2.20.0"
resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.0.tgz#57a4dd71ab0bf4b4bfcfc0511f1e8217c2076512"
integrity sha512-7j2y+40w61zy6YC2iRNpUe/N9+26Xzur40a6e34UgaJC2Qi2E7+bTwZdujJIq0G6tXJ+8UU/EgkWR7uXR4mErg==
yarn.lock
ファイルの各パッケージには、このようなブロックがあります。この例では、commander@2.20.0
が依存関係であり、インストールされた正確なバージョン(2.20.0)、ダウンロード元のURL、SHA512ハッシュが表示されます。
yarn.lock
ファイルは、他の開発者やデプロイメントシステムが正確に同じ依存関係を使用するようにするため、バージョン管理システム(Gitなど)にコミットする必要があります。
yarn.lock
ファイルを更新するには、yarn upgrade
コマンドを使用します。このコマンドにより、package.json
ファイルで指定されたバージョン範囲に従って全ての依存関係のバージョンが更新され、yarn.lock
ファイルも更新されます。