ワークスペース機能を使うと1つのプロジェクトで複数のnpm
パッケージを管理できるようになり、かつnode_modules
を1箇所にまとめることができます。
設定
プロジェクトルートのpackage.json
へは以下のような設定が必要になります。
{
"private": true,
"workspaces": [
"packages/**/*",
"example"
]
}
private:true
は必ず設定が必要です。workspaces
へはパッケージとなる(package.json
を持っている)ディレクトリへのパターンや相対パスを記述します。
これで例えば、example
やpackages/foo/hoge
といったディレクトリがpackage.json
を持っていればnpm
管理プロジェクトだとすることができます。
この状態でexample
とpackages/foo/hoge
双方でreact
をインストールするとルートのnode_modules
だけにreact
ディレクトリが作られます。(bin
系は各ディレクトリに作られる)
ルートへのパッケージインストール
ルートに共通パッケージをインストールしたい時などは-W
オプションが必要になります。