https://docs.npmjs.com/cli/v9/commands/npm-ci#configuration
npm install
のオプションに install-strategy
というものがあった。
デフォルトはhoisted(巻き上げ)。他に nested shallow がある。
これらのオプションは使ったことがない。 npm v7 から導入されたワークスペース機能で node_modules 配下のディレクトリ構造を決めるもの?
https://qiita.com/frozenbonito/items/8230d4a3cb5ea1b32802
ワークスペースでは「ルート」と「packages」配下にパッケージを配置する。
.
├── package.json
└── packages
├── a
│ └── package.json
└── b
└── package.json
ワークスペース内にパッケージを追加するには -w
オプションを使う。
npm install -w packages/a node-fetch
グローバルで利用するパッケージはオプション指定せずに追加する。
npm install eslint
ルートでインストールするとワークスペース内のパッケージが追加される。
npm install
ワークスペース内で定義されたスクリプトは -w
オプションを付けて実行する。
npm run foo -w --if-present
# すべてのワークスペースで定義されている共通スクリプトは `--if-present` を省略できる
npm run build -w
npm のモノレポ管理に lerna を使ったことがあるが、npm のみで完結できるようになった。
- 開発用環境をグローバルに追加
- 個別のソースコードと依存パッケージを packages 配下で分離
- スクリプトの一括または個別実行