npm install-strategy

Recent posts

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 配下で分離
  • スクリプトの一括または個別実行