workspaces を学んだ
vuejs/vue-test-utils: 🔬 Utilities for testing Vue componentsというライブラリのコードを読むにあたって workspaces という概念を学んだ。
もともと yarn workspaces というのがあるのは知っていたけどどういうものかあんまり分かっていなかった。
コードを読んでいたら「これは一体どこのコード……?」という部分が出てきて、packages
というディレクトリや package.json を見ていてググったら workspaces の話が出てきた。
vue-test-utils/package.json at dev · vuejs/vue-test-utils
Yarn のワークスペースの初歩 - 30 歳からのプログラミング
npm にも yarn にも workspaces はあって、どちらもできることはだいたい同じっぽい。
複数のパッケージを 1 リポジトリで管理でき、配下のパッケージはシンボリックリンクで管理する。
この仕組みによって、パッケージをまたいだ修正や変更がやりやすくなる。
npm に公開していないパッケージも node_modules に(シンボリックリンクとして)存在しているので、依存パッケージをまたいだ開発や修正がやりやすくなる。なるほど。
依存パッケージの管理をすべて root の yarn.lock でできる。
一部日本語訳も含めて公式ドキュメントをちゃんと読みます。