workspaces
は、ローカルファイルシステムでリンクされたパッケージを効率的に処理するためのオプション- パッケージで使うモジュールで重複されたものは1つに絞れる
npm
のバージョンが7以上- 以下のプロジェクト構成だとする
- . ├── A │ └── package.json └── package.json
workspaces
の指定- 階層Aのワークスペースを使うことを記載する
-
︙ "workspaces": ["A"] "private": true //ルートディレクトリをパッケージとして公開しない場合 ︙
name
の指定- ルートディレクトリにある
package.json
から参照できるようにする -
︙ "name": "A" "private": true //Aディレクトリをパッケージとして公開しない場合 ︙
- ルートディレクトリにある
npm init -w ワークスペースで指定するディレクトリ
- ワークスペースで指定するディレクトリに
package.json
が生成される - ルートディレクトリにある
package.json
のworkspaces
にワークスペースで指定するディレクトリが追加される
- ワークスペースで指定するディレクトリに
npm install インストールするパッケージ名 -w ワークスペース名
uninstall
、ci
などのコマンドも使える
npm run コマンド -w ワークスペース名
- 指定されたワークスペースでコマンドを実行する
npm run コマンド --workspaces
- ルートディレクトリで指定したワークスペース全体にコマンドを実行する