Cara memadam node_modules pada Mac tanpa kehilangan projek
Pasukan AskClean · Dikemas kini 2026-11-02
Anda boleh memadam folder node_modules sesuatu projek apabila package.json dan lockfile yang betul masih utuh serta semua kebergantungannya masih boleh diperoleh. Ukur setiap projek dahulu, hentikan alat yang sedang berjalan, simpan kod sumber dan konfigurasi, alihkan hanya folder node_modules yang telah disemak ke Sampah, kemudian pasang semula dengan pengurus pakej yang sepadan. Jangan kelirukan node_modules dengan cache muat turun bersama npm: lokasi, tujuan dan kos pemulihannya berbeza.

Bezakan node_modules daripada projek dan cache
node_modules ialah pepohon kebergantungan yang dipasang untuk satu projek dan hanya boleh dibina semula jika semua inputnya masih ada. Selepas folder ini dipadam, projek tidak boleh dijalankan atau dibina sehingga pemasangan semula selesai. package.json, lockfile, kod sumber, konfigurasi, tampalan, fail ruang kerja dan sejarah Git ialah resipi untuk membina semula kebergantungan — jangan padam fail ini. Cache muat turun bersama npm, biasanya di ~/.npm, ialah kategori storan lain dengan skop dan kos pemulihan yang berbeza.
Pastikan kebergantungan benar-benar boleh dibina semula
Lockfile menjadikan pemasangan lebih mudah diramal, tetapi ia bukan salinan pakej. Kenal pasti pengurus pakej dan versinya, kemudian simpan package-lock.json, pnpm-lock.yaml, yarn.lock, bun.lock atau bun.lockb yang digunakan oleh repositori. npm v12 tidak lagi membaca npm-shrinkwrap.json; projek lama mesti menamakan semula fail yang berformat sama itu sebagai package-lock.json sebelum bergantung pada npm v12. Sahkan juga akses kepada registry persendirian, VPN, kebergantungan Git dan file:, ruang kerja setempat, muat turun luaran serta rangkaian alat binaan natif. Perubahan yang hanya wujud dalam node_modules akan hilang buat selama-lamanya.
- Dari akar projek, jalankan pwd dan du -sh ./node_modules; catat juga ruang kosong macOS.
- Semak package.json, lockfile yang betul, konfigurasi ruang kerja dan perubahan setempat; untuk projek lama, namakan semula npm-shrinkwrap.json sebagai package-lock.json sebelum menggunakan npm v12.
- Pastikan registry persendirian, kebergantungan Git dan file:, pakej setempat, muat turun luaran serta alat binaan boleh dicapai; hentikan semua proses yang menggunakan node_modules.
- Alihkan hanya node_modules yang telah disahkan ke Sampah, kemudian pasang semula dari akar yang betul menggunakan pengurus pakej dan aliran kerja lockfile repositori.
- Jalankan perintah binaan, ujian, lint dan pelancaran aplikasi; ukur semula ruang, kemudian kosongkan Sampah hanya selepas semuanya lulus.
Jangan jadikan node_modules satu-satunya salinan pakej atau pembaikan manual. Jika versi kebergantungan yang tepat tidak lagi boleh diperoleh dan sumbernya tidak disimpan di tempat lain, pemadaman boleh menyebabkan projek lama tidak dapat dipulihkan.
Padam satu folder kebergantungan yang telah disahkan
Dalam projek yang telah disahkan, alihkan hanya node_modules ke Sampah melalui Finder — bukan repositori induknya. rm -rf ./node_modules memintas Sampah dan tidak boleh dipulihkan; sahkan akar projek dengan pwd sebelum mempertimbangkan perintah itu. Jangan bina perintah pemadaman daripada output find yang belum disemak, kad bebas, pemboleh ubah kosong atau laluan daripada skrip yang tidak dipercayai. Pasang semula dari akar yang betul dengan npm ci jika package-lock.json ialah rujukannya, atau gunakan pnpm install --frozen-lockfile, yarn install --immutable, yarn install --frozen-lockfile bagi Yarn Classic, atau bun install --frozen-lockfile mengikut arahan repositori. Kendalikan monorepo sebagai satu sistem yang dikawal oleh lockfile akar. Jika anda menggunakan AskClean, folder yang anda sahkan dipadam secara kekal dan tidak masuk ke Sampah; jika mahukan ruang untuk berpatah balik, alihkan sendiri folder itu ke Sampah melalui Finder.
Pasang semula dan sahkan seluruh projek
Pemasangan yang selesai belum membuktikan bahawa projek telah pulih sepenuhnya. Jalankan perintah binaan, ujian, lint dan pelancaran yang didokumenkan; modul natif dan skrip kitar hayat masih boleh gagal selepas perubahan Node.js, macOS atau rangkaian alat binaan. Pemulihan memerlukan muat turun, pengekstrakan fail, penciptaan pautan dan mungkin kompilasi. Jika gagal, pulihkan folder daripada Sampah jika masih ada, simpan log ralat, kemudian semak kelayakan akses, rangkaian, versi dan lockfile sebelum membersihkan projek lain.
Sempadan pemadaman dan kos pemulihan
Cari folder node_modules yang besar pada Mac, lindungi kod sumber dan lockfile, padam mengikut projek dan pasang semula dengan npm, pnpm, Yarn atau Bun.
| Item atau tindakan | Tempat menyemak | Akibat |
|---|---|---|
| Bezakan node_modules daripada projek dan cache | <project>/node_modules | node_modules ialah pepohon kebergantungan yang dipasang untuk satu projek dan hanya boleh dibina semula jika semua inputnya masih ada. |
| Pastikan kebergantungan benar-benar boleh dibina semula | package.json + lockfile + konfigurasi ruang kerja | Lockfile menjadikan pemasangan lebih mudah diramal, tetapi ia bukan salinan pakej. |
| Padam satu folder kebergantungan yang telah disahkan | Sampah / pasang semula dengan pengurus pakej | Dalam projek yang telah disahkan, alihkan hanya node_modules ke Sampah melalui Finder — bukan repositori induknya. |
| Pasang semula dan sahkan seluruh projek | binaan + ujian + pelancaran aplikasi | Pemasangan yang selesai belum membuktikan bahawa projek telah pulih sepenuhnya. |
Soalan lazim
Adakah selamat untuk memadam node_modules pada Mac?
Biasanya selamat jika package.json, lockfile yang betul, fail ruang kerja, kod sumber dan semua sumber kebergantungan masih tersedia. Projek tidak akan berjalan sehingga kebergantungan dipasang semula. Alihkan satu folder yang telah disahkan ke Sampah, pasang semula dan uji, kemudian kosongkan Sampah hanya selepas projek berfungsi.
Perlukah package-lock.json dipadam bersama-sama?
Tidak. package-lock.json ialah input untuk pemasangan npm yang boleh diulang. npm v12 tidak lagi membaca npm-shrinkwrap.json, jadi projek lama mesti menamakan semula fail yang berformat sama itu sebagai package-lock.json, bukannya memadamnya.
Adakah node_modules sama dengan cache npm?
Tidak. node_modules ialah kebergantungan yang dipasang untuk satu projek; cache bersama npm biasanya berada di ~/.npm. Memadam salah satu daripadanya tidak memadam yang satu lagi.
Sumber