投稿日:2024/10/26
更新日:2024/11/4
以前、調査のためにアプリケーションのバージョンを下げようとした際、node_modulesを入れ直したく、その際にyarn.lock・package-lock.jsonとpackage.jsonを消してからyarn・npm installを行うとうまくいきませんでした。
参考にしたのはチャットGPTの以下の回答です。
Node modulesの入れ直しは、以下の手順で実行できます。
1. `node_modules` フォルダを削除する:
プロジェクトディレクトリで以下のコマンドを実行して、`node_modules` フォルダを削除します。
```
rm -rf node_modules
```
2. `package-lock.json` (または`yarn.lock`) の削除 (オプション):
確実にクリーンインストールしたい場合、`package-lock.json` ファイルも削除します。
```
rm -f package-lock.json
```
3. 依存関係の再インストール:
npmを使っている場合は以下のコマンドを実行します。
```
npm install
```
または、yarnを使っている場合は以下を実行します。
```
yarn install
```
これで、すべての依存関係が再インストールされます。
結果的にこれだとうまくいきませんでした。
yarn.lock.jsonもしくはpackage-lock.jsonを削除していたのが問題でした。
正しくは以下です。
rm -rf node_modules
yarn install or npm install
yarn installやnpm installは、主に package.json と yarn.lock を見て依存関係を解決し、必要なパッケージを node_modules フォルダにインストールしているようで、これにより、プロジェクトの依存関係が一貫して管理されます。
なので、yarn.lockやpackage-lock.jsonを削除した上でinstallし直してしまうと依存関係が全く同じにならなくなるので、新規で個人開発をしている時などは問題ないケースもあるが、長く運用されているアプリケーションでこれやるとうまくいかなくなるケースがあるようでした。
ついでに、、、
yarn install --check-files
これでもいけるよ、と言う記事がちらほらありますが、--check-files フラグは、インストール済みのパッケージのファイルをチェックし、もし欠落しているファイルがあればそれを再インストールするみたいなので完全なインストールのやり直しにはなりません。
なので
rm -rf node_modules
yarn install or npm install
で入れ直す方がいいんじゃないかなと思っています。