Cách xóa bộ nhớ đệm npm trên Mac một cách an toàn
Đội ngũ AskClean · Cập nhật 2026-08-05
Tìm bộ nhớ đệm đang hoạt động bằng npm config get cache, đo chính xác đường dẫn đó rồi chạy npm cache verify trước khi xóa bất cứ thứ gì. Chỉ dùng npm cache clean --force khi bạn thực sự cần dung lượng và chấp nhận chi phí tải lại. node_modules, package.json và tệp khóa không phải bộ nhớ đệm nên phải giữ nguyên.

Tách bộ nhớ đệm khỏi phần phụ thuộc và tệp dự án
Bộ nhớ đệm npm lưu các tệp tải xuống để nhiều dự án dùng lại và mặc định nằm ở ~/.npm trên macOS, dù cấu hình có thể đổi vị trí. node_modules là cây phần phụ thuộc đã cài của một dự án. package.json và package-lock.json là trạng thái dự án, không phải bộ nhớ đệm. npm-shrinkwrap.json cũng không phải bộ nhớ đệm, nhưng npm v12 không còn đọc tệp này. Nếu đó là tệp khóa duy nhất của dự án, hãy sao lưu hoặc commit rồi đổi tên tệp cùng định dạng thành package-lock.json trước khi cài lại bằng npm v12; không ghi đè package-lock.json đang có.
Đo bộ nhớ đệm đang dùng và xác minh trước
Đừng cho rằng ~/.npm hiện có chắc chắn là bộ nhớ đệm đang hoạt động. npm config get cache cho biết đường dẫn trong ngữ cảnh cấu hình hiện tại; hãy ghi lại npm --version, đo chính xác đường dẫn được in bằng du -sh và lưu dung lượng trống của macOS. npm cache verify kiểm tra chỉ mục cùng dữ liệu, xác minh tính toàn vẹn và loại bỏ nội dung không còn cần thiết mà vẫn giữ các tệp tải xuống hợp lệ. Với bảo trì định kỳ hoặc lỗi cài đặt không bắt nguồn từ bộ nhớ đệm, bước xác minh thường đã đủ.
- Chạy npm --version và npm config get cache; xác nhận kết quả là đường dẫn bộ nhớ đệm chứ không phải thư mục dự án.
- Đo chính xác đường dẫn được in bằng du -sh và ghi lại dung lượng trống của macOS mà không thay đổi package.json hay tệp khóa.
- Dừng npm install, npm ci, npm exec và tiến trình phát hành; chạy npm cache verify rồi lưu phần tổng kết cùng mọi lỗi.
- Chỉ chạy npm cache clean --force nếu bước verify chưa đủ, dung lượng thu hồi đáng kể và mọi gói hoặc tệp cần thiết vẫn có nguồn tải truy cập được.
- Chạy lại npm cache verify, đo đúng đường dẫn cũ rồi kiểm tra dự án đại diện cùng quy trình build và test mà không đổi tệp khóa.
Không bao giờ đưa đường dẫn chưa xác minh vào rm -rf. Cũng đừng vừa dọn bộ nhớ đệm vừa xóa hoặc tạo lại tệp khóa; thay đổi đồng thời hai yếu tố sẽ làm mất đối chứng cần thiết để chẩn đoán lỗi.
Chủ động chấp nhận hậu quả của npm cache clean --force
Chỉ chạy npm cache clean --force khi bộ nhớ đệm đã đo đủ lớn, bạn cần chỗ trống ngay và các gói vẫn có thể tải lại. Lệnh này xóa bộ nhớ đệm đã cấu hình, không xóa node_modules, package.json hay tệp khóa; npm sẽ tạo lại bộ nhớ đệm khi cần. Lần cài sau có thể chậm hơn hoặc thất bại khi ngoại tuyến, còn registry riêng, máy chủ Git, proxy, thông tin xác thực và gói đã bị gỡ khỏi nguồn làm chi phí khôi phục cao hơn. Không đặt force thành cấu hình npm cố định.
Xác minh kết quả mà không đổi cây phần phụ thuộc
Sau khi dọn, hãy chạy lại npm config get cache, đo đúng vị trí cũ và so sánh dung lượng trống thực tế của macOS. Thử quy trình cài đặt hoặc build trên một dự án đại diện trong khi giữ nguyên package.json và tệp khóa, sau đó chạy các bài test cần thiết. Nếu lỗi cũ quay lại, đừng tiếp tục xóa: ERESOLVE, thông tin xác thực, 404, proxy, chứng chỉ, yêu cầu phiên bản Node.js, lỗi biên dịch mô-đun native và lifecycle script cần cách chẩn đoán khác. AskClean nhận diện ~/.npm mặc định; đường dẫn tùy chỉnh vẫn phải được kiểm tra bằng npm.
Ranh giới xóa và chi phí khôi phục
Tìm và đo đúng bộ nhớ đệm tải xuống npm đang dùng, xác minh trước rồi chỉ xóa khi cần mà không chạm vào node_modules hay tệp dự án.
| Mục hoặc thao tác | Nơi kiểm tra | Hậu quả |
|---|---|---|
| Tách bộ nhớ đệm khỏi phần phụ thuộc và tệp dự án | npm config get cache | Bộ nhớ đệm npm lưu các tệp tải xuống để nhiều dự án dùng lại và mặc định nằm ở ~/.npm trên macOS, dù cấu hình có thể đổi vị trí. node_modules là cây phần phụ thuộc đã cài của một dự án. package.json và package-lock.json là trạng thái dự án, không phải bộ nhớ đệm. npm-shrinkwrap.json cũng không phải bộ nhớ đệm, nhưng npm v12 không còn đọc tệp này. Nếu đó là tệp khóa duy nhất của dự án, hãy sao lưu hoặc commit rồi đổi tên tệp cùng định dạng thành package-lock.json trước khi cài lại bằng npm v12; không ghi đè package-lock.json đang có. |
| Đo bộ nhớ đệm đang dùng và xác minh trước | npm cache verify | Đừng cho rằng ~/.npm hiện có chắc chắn là bộ nhớ đệm đang hoạt động. npm config get cache cho biết đường dẫn trong ngữ cảnh cấu hình hiện tại; hãy ghi lại npm --version, đo chính xác đường dẫn được in bằng du -sh và lưu dung lượng trống của macOS. npm cache verify kiểm tra chỉ mục cùng dữ liệu, xác minh tính toàn vẹn và loại bỏ nội dung không còn cần thiết mà vẫn giữ các tệp tải xuống hợp lệ. Với bảo trì định kỳ hoặc lỗi cài đặt không bắt nguồn từ bộ nhớ đệm, bước xác minh thường đã đủ. |
| Chủ động chấp nhận hậu quả của npm cache clean --force | npm cache clean --force | Chỉ chạy npm cache clean --force khi bộ nhớ đệm đã đo đủ lớn, bạn cần chỗ trống ngay và các gói vẫn có thể tải lại. Lệnh này xóa bộ nhớ đệm đã cấu hình, không xóa node_modules, package.json hay tệp khóa; npm sẽ tạo lại bộ nhớ đệm khi cần. Lần cài sau có thể chậm hơn hoặc thất bại khi ngoại tuyến, còn registry riêng, máy chủ Git, proxy, thông tin xác thực và gói đã bị gỡ khỏi nguồn làm chi phí khôi phục cao hơn. Không đặt force thành cấu hình npm cố định. |
| Xác minh kết quả mà không đổi cây phần phụ thuộc | cài đặt + kiểm tra ngoại tuyến/registry riêng | Sau khi dọn, hãy chạy lại npm config get cache, đo đúng vị trí cũ và so sánh dung lượng trống thực tế của macOS. Thử quy trình cài đặt hoặc build trên một dự án đại diện trong khi giữ nguyên package.json và tệp khóa, sau đó chạy các bài test cần thiết. Nếu lỗi cũ quay lại, đừng tiếp tục xóa: ERESOLVE, thông tin xác thực, 404, proxy, chứng chỉ, yêu cầu phiên bản Node.js, lỗi biên dịch mô-đun native và lifecycle script cần cách chẩn đoán khác. AskClean nhận diện ~/.npm mặc định; đường dẫn tùy chỉnh vẫn phải được kiểm tra bằng npm. |
Câu hỏi thường gặp
Chạy npm cache clean --force trên Mac có an toàn không?
Lệnh này không chạm vào mã nguồn hay tệp dự án nếu npm trỏ đúng bộ nhớ đệm, nhưng sẽ loại bỏ các tệp tải xuống có thể dùng lại. Hãy đo và xác minh trước, dừng tiến trình đang chạy và chuẩn bị mạng cho lần cài sau.
Nên chạy npm cache verify hay clean trước?
Hãy chạy npm cache verify trước. Lệnh này kiểm tra tính toàn vẹn và loại bỏ dữ liệu không còn cần thiết nhưng vẫn giữ nội dung hợp lệ; clean --force chỉ dành cho nhu cầu dung lượng đã đo hoặc lỗi bộ nhớ đệm cụ thể đã được xác nhận.
Xóa bộ nhớ đệm npm có xóa package-lock.json không?
Không. package.json và package-lock.json là tệp dự án. npm v12 không còn đọc npm-shrinkwrap.json; nếu đó là tệp khóa duy nhất, hãy sao lưu hoặc commit rồi đổi tên thành package-lock.json, không ghi đè tệp đang có và không xóa tệp khóa trong lúc dọn bộ nhớ đệm.
Nguồn tham khảo