AskClean

Cara mengosongkan cache npm pada Mac dengan selamat

Pasukan AskClean · Dikemas kini 2026-11-02

Cari cache aktif dengan npm config get cache, ukur laluan itu dengan du, kemudian jalankan npm cache verify sebelum memadam apa-apa. Gunakan npm cache clean --force hanya apabila anda benar-benar memerlukan ruang cakera dan menerima kos muat turun pada masa hadapan. Perintah ini tidak membuang node_modules, package.json atau lockfile anda.

Blok pakej mengalir melalui gelang cache yang dilindungi perisai pengesahan, manakala bekas kitar semula dan fail projek kekal berasingan
Cache npm menyimpan muat turun yang boleh digunakan semula; fail projek, lockfile dan node_modules yang dipasang berada di luar cache.

Asingkan cache, kebergantungan yang dipasang dan projek

Cache npm menyimpan muat turun yang boleh digunakan semula oleh banyak projek dan secara lalai berada di ~/.npm pada macOS, walaupun konfigurasi boleh memindahkannya. Folder node_modules pula ialah pepohon kebergantungan yang dipasang untuk satu projek, dan mengosongkan cache tidak membuangnya. Fail package.json dan package-lock.json ialah fail projek, bukan cache. Fail npm-shrinkwrap.json juga bukan cache, tetapi npm v12 tidak lagi membacanya; projek lama mesti menamakan semula fail yang berformat sama itu sebagai package-lock.json sebelum pemasangan semula dengan npm v12.

Ukur cache aktif dan sahkan terlebih dahulu

Jangan anggap ~/.npm sebagai cache aktif hanya kerana folder itu wujud. npm config get cache menunjukkan laluan bagi tetapan semasa; catat npm --version, ukur laluan yang dicetak dengan du -sh dan rekod ruang kosong macOS. npm cache verify menyemak indeks dan data, mengesahkan integriti serta membuang data yang tidak diperlukan tanpa membuang muat turun yang sah. Bagi penyelenggaraan rutin, pengesahan ini biasanya sudah memadai; bagi ralat pemasangan, cuba semula perintah asal sekali dan bandingkan ralatnya, kerana masalah kelayakan registry, proksi atau versi tidak dibaiki dengan membuang muat turun yang sah.

  1. Jalankan npm --version dan npm config get cache; pastikan hasilnya ialah laluan cache, bukan folder projek.
  2. Ukur laluan tepat yang dicetak dengan du -sh dan catat ruang kosong macOS tanpa mengubah package.json atau lockfile.
  3. Hentikan npm install, npm ci, npm exec dan proses penerbitan; jalankan npm cache verify dan simpan ringkasan serta ralatnya.
  4. Jalankan npm cache clean --force hanya jika npm cache verify tidak mencukupi, ruang yang diperoleh bermakna dan semua artifak yang diperlukan masih tersedia.
  5. Jalankan npm cache verify sekali lagi, ukur laluan yang sama, kemudian jalankan perintah binaan dan ujian bagi projek wakil tanpa mengubah lockfile.

Jangan sekali-kali masukkan laluan yang belum disahkan ke dalam rm -rf. Jangan juga gabungkan pembersihan cache dengan pemadaman atau penciptaan semula lockfile; dua perubahan serentak menghapuskan perbandingan yang diperlukan untuk mendiagnosis ralat.

Gunakan npm cache clean --force dengan sengaja

Jalankan npm cache clean --force hanya apabila cache yang diukur memang besar, ruang diperlukan sekarang dan artifak boleh dimuat turun semula. Perintah ini membersihkan cache yang dikonfigurasi — bukan node_modules, package.json atau lockfile — dan npm akan mencipta semula cache apabila perlu. Pemasangan seterusnya mungkin lebih perlahan atau gagal ketika luar talian; registry persendirian, pelayan Git, proksi, kelayakan serta pakej yang telah ditarik balik meningkatkan kos pemulihan. Gunakan --force hanya pada perintah ini; jangan jadikan force tetapan npm yang kekal kerana ia turut melonggarkan perlindungan bagi operasi lain.

Sahkan hasil tanpa mengubah kebergantungan

Selepas pembersihan, jalankan npm config get cache sekali lagi, ukur lokasi yang sama dan bandingkan ruang kosong sebenar pada macOS. Uji satu projek wakil dengan package.json serta lockfile yang tidak diubah, kemudian jalankan perintah binaan dan ujiannya. Jika ralat lama berulang, jangan ulang pemadaman: ERESOLVE, kelayakan akses, 404, proksi, sijil, keperluan versi Node.js, binaan natif dan skrip kitar hayat memerlukan diagnosis lain. AskClean mengenali ~/.npm lalai sebagai satu cache bersama dan memadam item yang anda sahkan secara kekal; laluan cache tersuai masih perlu disemak melalui npm.

Sempadan pemadaman dan kos pemulihan

Cari dan ukur cache muat turun yang digunakan oleh npm pada Mac, sahkan dahulu dan kosongkan hanya apabila perlu tanpa menyentuh node_modules atau fail projek.

Item atau tindakanTempat menyemakAkibat
Asingkan cache, kebergantungan yang dipasang dan projeknpm config get cacheCache npm menyimpan muat turun yang boleh digunakan semula oleh banyak projek dan secara lalai berada di ~/.npm pada macOS, walaupun konfigurasi boleh memindahkannya.
Ukur cache aktif dan sahkan terlebih dahulunpm cache verifyJangan anggap ~/.npm sebagai cache aktif hanya kerana folder itu wujud.
Gunakan npm cache clean --force dengan sengajanpm cache clean --forceJalankan npm cache clean --force hanya apabila cache yang diukur memang besar, ruang diperlukan sekarang dan artifak boleh dimuat turun semula.
Sahkan hasil tanpa mengubah kebergantunganpemasangan + semakan luar talian/registry persendirianSelepas pembersihan, jalankan npm config get cache sekali lagi, ukur lokasi yang sama dan bandingkan ruang kosong sebenar pada macOS.

Soalan lazim

Adakah npm cache clean --force selamat dijalankan pada Mac?

Perintah itu tidak menyentuh kod sumber atau fail projek jika npm menunjuk ke cache yang betul, tetapi ia membuang muat turun yang boleh digunakan semula. Ukur dan sahkan dahulu, hentikan proses npm yang aktif dan pastikan rangkaian tersedia untuk pemasangan seterusnya.

Mana yang perlu dijalankan dahulu: npm cache verify atau npm cache clean?

Jalankan npm cache verify dahulu. Perintah ini menyemak integriti dan membuang data yang tidak diperlukan sambil mengekalkan kandungan yang sah; npm cache clean --force hanya untuk keperluan ruang yang telah diukur atau masalah cache khusus yang disahkan.

Adakah mengosongkan cache npm memadam package-lock.json?

Tidak. package.json dan package-lock.json ialah fail projek. npm v12 tidak lagi membaca npm-shrinkwrap.json, jadi projek lama mesti menamakannya semula sebagai package-lock.json, bukannya memadamnya semasa mengosongkan cache.

Sumber

Panduan storan pembangun yang lain