JavaScriptに関するお知らせ

SINCE2019
>
【JS】node_modulesはlockファイルがあれば全削除してもほぼ大丈夫だよ!

【JS】node_modulesはlockファイルがあれば全削除してもほぼ大丈夫だよ!


こんにちは!node_modulesをGitHubにpushしたことのあるMizutani(@sirycity)です。あれやるとやばいよね。

今日はそんなnode_modulesを消す話です。物騒ですね。

結論

node_modulesはlockファイルがあれば大抵の場合は全削除しても大丈夫です。復活できます。すいません、消した結果何かがあっても責任はとれません

はじめに

node_modules、消したくなったことありませんか?僕はあります。ファイルサイズ大きいし。でも、消しても復活できるか不安ですよね。分かりますその気持ち。

node_modulesとは

node_modulesとはnpmとかyarnを使ってインストールしてきたライブラリのコードが凝縮された空間です。中身見てみると面白いです。めっちゃコードあるから。

...とはいえ、基本的にnode_modulesの中身を触ることはないです。だって他人のコードだしね。

node_modulesとpackage.json

node_modulesにはpackage.jsonで指定した中身が入ってます。package.jsonが牛乳ならnode_modulesはカルシウム

lockファイルについて

npmだとpackage-lock.json、yarnだとyarn.lockって名前です。lockファイルはpackage.jsonの結果みたいもの。package.jsonがおつかいメモならlockはレシート。package.jsonが牛乳ならlockはおいしい牛乳。

lockファイルがあればnode_modulesは消してOK

こっからが大事ですが、lockファイルがあればnode_modulesは消してもほとんどの場合でOKです。牛乳の商品名が指定されてれば成分変わらないみたいなイメージ。

実際にlockファイルがある状態でnode_modulesを消してみよう。こんな感じ。

rm -rf node_modules/

んで、消したらもう1回復活させましょう。こんな感じ。npmとyarnでそれぞれこんな風。

npm install
yarn install

はいこれで消したnode_modules元通り。もう1回消しましょうか。

rm -rf node_modules/

もう1回復活させよう。

npm install
yarn install

はい元通り。

例外

...恐ろしい話ですが、lockファイルがあってもnode_modulesが元通りにならない場合があります。レアケースだけどね。

それは実行環境が違うケース。例えばOSが違ったり、nodeのバージョンが違ったり。この辺りはdocker使うなりして揃えましょう。まあそこまでしなくても良い場合も多いと思います。

さいごに

最初のうちは何を消してもよいか分からなくなりがちですよね。皆さんもnode_modules、消してみてくれよな。



PREV
2022-04-30
【CSS】daisyUIをIEに対応させる

NEXT
2022-05-09
GooglePay使用時のFelicaとVISAタッチの挙動の違い