ワークスペースの設定⚓︎
ブランクプロジェクトの作成 で作成したルートプロジェクトとワークスペースについて、 追加で必要な設定をします。
ワークスペースの定義⚓︎
ワークスペースの名称は、ルートプロジェクトの package.json の workspaces
プロパティで定義し、この値はワークスペースの package.json の name
プロパティと一致している必要があります。 ブランクプロジェクトの作成 に従って初期設定した場合は、自動的に構成されます。
package.json(ルート) | |
---|---|
1 2 3 |
|
package.json(ワークスペース) | |
---|---|
1 2 3 |
|
ルートプロジェクトの設定⚓︎
ルートプロジェクトの package-json に "type": "module"
と"private": "true"
を追加します。 CJS 形式のファイルを正しく読み込むために、 "type": "module"
は設定が必須です。 "private": "true"
は、誤ってルートプロジェクトが公開されることを防ぐため、設定を推奨します。
package.json(ルート) | |
---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
スクリプトの登録⚓︎
ルートプロジェクトの package.json にスクリプトを登録します。 -w
オプションでワークスペース名を指定することで、指定したワークスペースの package.json に存在するスクリプトを実行できます。 設定例を下記に示します。
package.json(ルート) | |
---|---|
1 2 3 4 5 6 7 8 9 10 11 |
|
パッケージの依存関係の管理⚓︎
パッケージのバージョンは、ルートプロジェクトの package-lock.json で管理されます。各ワークスペースには package-lock.json は作成されません。 パッケージのインストール・バージョン更新は、 npm workspaces を使用しない場合と同様に、各ワークスペースで npm install
を行います。 しかし、インストールしたパッケージの依存関係は、ルートプロジェクトの package-lock.json に記録されます。 また、各ワークスペースの package.json でバージョンを指定することで、ワークスペース間で異なるバージョンのパッケージを使用できます。