2013-02-12 34 views
25

Tôi đã cài đặt NPM gói toàn cầu jslint và nó sống ở đâythư mục ~/.npm là gì?

$ ls -la /usr/local/bin/jslint 
lrwxr-xr-x 1 lust admin 40 Feb 12 15:31 /usr/local/bin/jslint -> ../lib/node_modules/jslint/bin/jslint.js 

$ ls -la /usr/local/lib/node_modules/jslint/bin 
total 8 
drwxr-xr-x 3 lust staff 102 Apr 16 2012 . 
drwxr-xr-x 10 lust staff 340 Feb 12 15:31 .. 
-rwxr-xr-x 1 lust staff 2330 Apr 16 2012 jslint.js 

$ which jslint 
/usr/local/bin/jslint 

$ head -3 /usr/local/bin/jslint 
#!/usr/bin/env node 

var linter = require("../lib/linter"); 

Vì vậy, nó là không có bất kỳ nghi ngờ nào vào thời điểm này mà jslint là trong thực tế được chạy từ dir này và không ở đây:

$ ls -la .npm/jslint/0.1.9/package/bin/   
total 8 
drwxr-xr-x 3 lust staff 102 Apr 16 2012 . 
drwxr-xr-x 9 lust staff 306 Feb 12 15:31 .. 
-rwxr-xr-x 1 lust staff 2330 Apr 16 2012 jslint.js 

Có vẻ như có hai bản sao của gói, một trong số /usr/local/ và một trong số ~/.npm. Tại sao có một trong số .npm và tôi có an toàn khi xóa nó không?

Trả lời

61

~/.npm là bộ nhớ cache mà npm sử dụng để tránh tải xuống lại cùng một gói nhiều lần. Không có hại trong việc loại bỏ nó. Bạn có thể làm trống nó bằng lệnh:

npm cache clean 
+0

Tuyệt vời! Cảm ơn bạn –

+0

Một câu hỏi về điều này, tôi đã cố gắng làm '' '$ npm cache clean''' và gặp lỗi' '' Error: EACCES, unlink'''. Nó cho thấy để làm như một quản trị viên, ngay cả khi tôi làm $ sudo npm cài đặt tất cả mọi thứ đi vào nhà của tôi/.npm dir ?? không nên ... – alexserver

+1

@alexserver Tôi sẽ thử sử dụng 'chown -r' để lấy lại quyền sở hữu của đạo diễn' ~/.npm', sau đó chạy lại 'npm cache clean'. –

Các vấn đề liên quan