投稿日: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 installyarn 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で入れ直す方がいいんじゃないかなと思っています。