Yarn (パッケージ管理ツール)

Yarnは、主要なJavaScriptのパッケージ管理システムの1つであり、2016年にMeta（旧Facebook）のSebastian McKenzieによって開発された。Node.jsのJavaScriptランタイム環境向けに作成された。npmパッケージ管理ツールの代替として、Yarnは大規模なコードベースでの一貫性、セキュリティ、およびパフォーマンスの問題を解決するために、Facebook（現在のMeta）、Exponent（現在のExpo.dev）、Google、およびTilde（:en:Ember.jsの後援者）の協力によって作成された。

 機能 
ユーザーはYarn用の独自のプラグインを作成できる。

 制約 
Yarnの制約( Constraints )を使用すると、ユーザーは依存関係またはスコープ付きワークスペース全体でのマニフェストフィールドのルールを強制できる。

 オフラインキャッシュ 
ダウンロードされたパッケージはキャッシュされ、単一のファイルとして保存される。

 Plug'n'Play 
Plug'n'Playは、node_modulesフォルダーなしでNodeプロジェクトを実行できるようにする機能であり、Plug-n-Playコントロールファイルで依存関係パッケージファイルの解決方法や場所を定義する。この機能は、不適切に構造化されたnode_modulesアーキテクチャを修正し、より高速なNode.jsアプリケーションの起動時間を実現することを目的としている。

 プラグイン 
プラグインは新しいリゾルバー、フェッチャー、リンカー、コマンドを追加でき、一部のイベントに登録したり、互いに統合したりすることもできる。ほとんどのYarnの機能はプラグインを介して実装されており、これにはyarn addやyarn installなども含まれる。

 プロトコル 
ユーザーは特定のパッケージを解決するためにどのプロトコルを使用するかを定義できる。たとえば、gitプロトコルはGitリポジトリからパブリックパッケージをダウンロードするために使用され、patchプロトコルは元のパッケージのパッチ適用コピーを作成するために使用される。

 リリースワークフロー 
リリースワークフローは、ルートパッケージがアップグレードされたときにモノレポのワークスペース間で相対パッケージを自動的にアップグレードする。

 ワークスペース 
ワークスペースを使用すると、複数のプロジェクトを同じリポジトリ内で共同作業させ、ソースコードが変更されたときに他の関連するプロジェクトに自動的に変更を適用できる。インストールコマンドを1回だけ実行して複数のパッケージを一度にインストールすることができる。

 ゼロインストール 
ゼロインストールは、コードがローカルに取得されたときにパッケージのインストールが必要な場合のニーズを解決する。

 npmとの比較 
 Yarnはローカルキャッシュからパッケージをインストールできる。
 Yarnはパッケージのバージョンを強くバインドする。
 Yarnはデータの整合性を確認するためにチェックサムを使用するが、npmはパッケージのダウンロード時にデータの整合性を確認するためにSHA-512を使用する。
 Yarnはパッケージを並列にインストールするが、npmはパッケージを1つずつインストールする。

 構文 
Yarnのインストール方法：
npm install -g yarn
Yarnを使用してパッケージをインストールするには：
yarn add パッケージ名 --dev
註：最初のバージョンでは、以下のようになる：
yarn install パッケージ名 --save-dev

 参考文献 

 関連項目 
 npm (パッケージ管理ツール)
 Node.js

 外部リンク 


Category:フリーパッケージ管理システム
Category:ソフトウェア開発ツール
Category:JavaScriptでプログラムされた自由ソフトウェア
Category:TypeScriptでプログラムされた自由ソフトウェア