# パッケージマネージャーを npm に移行するときには `npm install --package-lock-only` コマンドを使うとよい

既存のプロジェクトでパッケージマネージャーを移行する時に問題になるのが lock ファイルの互換性です。現在 JavaScript の主要なパッケージマネージャーには npm, yarn, pnpm がありますが、それぞれが独自の lock ファイルを持っています。

そのため、例えば yarn から npm に移行する場合、lock ファイルを削除して `npm install` すると、依存パッケージのバージョンが変わってしまう可能性があります。

yarn と pnpm にはそれぞれ [yarn import](https://chore-update--yarnpkg.netlify.app/ja/docs/cli/import) と [pnpm import](https://pnpm.io/cli/import) というコマンドがあり、これを使うと lock ファイルを移行できます。

npm においては同等のコマンドとして [--package-lock-only](https://docs.npmjs.com/cli/v10/commands/npm-install#package-lock-only) オプションが用意されています。このオプションは `npm install` 時に lock ファイルを更新するだけで、依存パッケージのインストールは行いません。つまり、現在の `node_modules` の状態に応じて `pakcage-lock.json` を生成してくれるのです。

```sh
npm install --package-lock-only
```

これにより、既存のプロジェクトで npm に移行する際にも、依存パッケージのバージョンを変更することなく lock ファイルを移行できます。
  