Làm thế nào để liệt kê các gói do người dùng cài đặt npm?


629

Làm cách nào để liệt kê gói người dùng CHỈ cài đặt npm? Khi tôi làm npm -g listnó xuất ra mọi gói và các phụ thuộc của chúng, đó không phải là điều tôi muốn.

Câu trả lời:


1246

Điều này cũng hoạt động khá tốt: npm list -g --depth=0

  • npm : công cụ dòng lệnh của trình quản lý gói Node
  • danh sách -g : hiển thị một cây của mọi gói được tìm thấy trong các thư mục của người dùng (không có tùy chọn -g, nó chỉ hiển thị các gói của thư mục hiện tại)
  • độ sâu 0 / - độ sâu = 0 : tránh bao gồm mọi phụ thuộc của gói trong chế độ xem dạng cây

Trả về kết quả trống. Phiên bản npm của tôi là 3.6.0.
Bagusflyer

4
Tại sao --depth=0tùy chọn không được đề cập khi tôi chạy npm help ls?
Marecky

Nếu bạn cài đặt các mô-đun của mình tại một thư mục khác bằng cách sử dụng --prefix, thì bạn cần thêm --prefixquá nhiều vào npm listlệnh này .
Sany Liew

1
Cũng có thể là tốt để thêm | grep -v "duped"để loại bỏ các phụ thuộc trùng lặp vào danh sách
Spencer Pollock

1
làm việc hoàn hảo trên windows
prakash nắng

132

Bạn có thể nhận danh sách tất cả các mô-đun được cài đặt trên toàn cầu bằng cách sử dụng:

ls `npm root -g`


13
ls -lh `npm root -g`hiển thị chúng trong một danh sách tốt đẹp.
LanceLafontaine

3
Giải pháp này nhanh hơn nhiều so với giải thưởng hàng đầu.
DarkNeuron

3
Giải pháp này là tốt nhưng npm list -g --depth=0 in ra phiên bản đó là tốt đẹp. Dù sao, tôi không biết về lệnh này nên +1 cho điều đó.
pixel 67

3
npm root -g | gcitrong Powershell trên windows
Lars

1
điều này không hoạt động đối với các mô-đun @scoped
Franz Sittampalam

113

Kể từ ngày 13 tháng 12 năm 2015

danh sách npm minh họa

Trong khi tôi tìm thấy câu trả lời được chấp nhận đúng 100% và hữu ích, tôi muốn mở rộng dựa trên nó một chút dựa trên kinh nghiệm của bản thân và hy vọng cũng có lợi cho người khác. (Ở đây tôi đang sử dụng gói điều khoản và mô-đun hoán đổi cho nhau)

Để trả lời cho câu hỏi, có, câu trả lời được chấp nhận sẽ là:

npm list -g --depth=0

Bạn có thể muốn kiểm tra một mô-đun cụ thể được cài đặt trên toàn cầu, trên các hệ thống * nix / khi grep có sẵn. Điều này đặc biệt hữu ích khi kiểm tra phiên bản mô-đun bạn đang sử dụng (được cài đặt trên toàn cầu, chỉ cần xóa cờ -g nếu kiểm tra mô-đun cục bộ):

npm list -g --depth=0 | grep <module_name>

Nếu bạn muốn xem tất cả các phiên bản có sẵn (từ xa) cho một mô-đun cụ thể, thì hãy làm:

npm view <module_name> versions

Lưu ý, phiên bản là số nhiều. Điều này sẽ cung cấp cho bạn danh sách đầy đủ các phiên bản để lựa chọn.

Đối với phiên bản từ xa mới nhất:

npm view <module_name> version  

Lưu ý, phiên bản là số ít.

Để tìm ra gói nào cần được cập nhật, bạn có thể sử dụng

npm outdated -g --depth=0

Để cập nhật các gói toàn cầu, bạn có thể sử dụng

npm update -g <package>

Để cập nhật tất cả các gói toàn cầu, bạn có thể sử dụng:

npm update -g

(Tuy nhiên, đối với các phiên bản npm nhỏ hơn 2.6.1, vui lòng xem liên kết này vì có một tập lệnh đặc biệt được khuyến nghị để cập nhật toàn cầu cho tất cả các gói).

Các lệnh trên sẽ hoạt động trên các phiên bản NPM 1.3.x, 1.4.x, 2.x và 3.x


Để cập nhật một gói toàn cầu cụ thể : npm update -g <package>. Tôi tin updatelà thích hợp hơn installở đây vì npm sẽ thông minh và chỉ thực hiện cài đặt nếu gói được chỉ định đã lỗi thời.
Robin A. Meade

1
@Talespin_Kit có lẽ là screentogif
forresthopkinsa

@Talespin_Kit ShareX là FANTASTIC để tạo và chia sẻ ảnh chụp màn hình gif (và bất kỳ ảnh chụp màn hình nào khác).
Aaron Bell

38

Tôi thích các công cụ với một số gui thân thiện!

Tôi đã sử dụng npm-guicung cấp cho bạn danh sách các gói địa phương và toàn cầu

Gói này có tại https://www.npmjs.com/package/npm-guihttps://github.com/q-nick/npm-gui

//Once
npm install -g npm-gui

cd c:\your-prject-folder
npm-gui localhost:9000

Tại trình duyệt của bạn http:\\localhost:9000

npm-gui


Làm thế nào để bạn tải cho các gói được cài đặt trên toàn cầu?
Ciasto piekarz

20

Đối với phụ thuộc dự án sử dụng:

npm list --depth=0

Đối với phụ thuộc toàn cầu sử dụng:

npm list -g --depth=0

17
npm ls

npm list chỉ là một bí danh cho npm ls

Đối với việc sử dụng thông tin mở rộng

npm la    
npm ll

Bạn luôn có thể đặt --depth=0ở cuối để có được cấp độ sâu đầu tiên.

npm ls --depth=0

Bạn có thể kiểm tra các gói phát triển và sản xuất.

npm ls --only=dev
npm ls --only=prod

Để hiển thị thông tin ở jsonđịnh dạng

npm ls --json=true

Mặc định là false

npm ls --json=false

Bạn có thể nhấn mạnh vào định dạng dài để hiển thị thông tin mở rộng.

npm ls --long=true

Bạn có thể hiển thị đầu ra có thể phân tích cú pháp thay vì xem cây.

npm ls --parseable=true

Bạn có thể liệt kê các gói trong tiền tố cài đặt toàn cầu thay vì trong dự án hiện tại.

npm ls --global=true
npm ls -g // shorthand

Tài liệu đầy đủ bạn có thể tìm thấy ở đây .


8

Node có khái niệm về mô-đun cục bộ & mô-đun toàn cầu

Các mô-đun cục bộ được đặt trong thư mục dự án hiện tại.

Các mô-đun toàn cầu thường được đặt tại thư mục nhà của người dùng, mặc dù chúng ta có thể thay đổi đường dẫn nơi các mô-đun toàn cầu cư trú.

  1. Liệt kê các mô đun cục bộ trong thư mục hiện tại: npm list
  2. Liệt kê các mô-đun toàn cầu: npm list --globalHOẶCnpm list --g // Nó sẽ liệt kê tất cả các mô-đun cấp cao nhất với các phụ thuộc của nó
  3. Chỉ liệt kê các cấp cao nhất (mô-đun đã cài đặt) mô-đun toàn cầu: npm list -g --depth=0

7

Một cách có thể là tìm thư mục gốc của các mô-đun bằng cách sử dụng:

npm root
/Users/me/repos/my_project/node_modules

Và sau đó liệt kê thư mục đó ...

ls /Users/me/repos/my_project/node_modules
grunt                   grunt-contrib-jshint

Các gói do người dùng cài đặt trong trường hợp này là grunt và grunt-contrib-jshint


1
Tại sao không sử dụng lệnh npm tích hợp chính thức? npm list -g --depth=0
Kukks 16/1/2015

Cách này có thể giúp nhà phát triển hiểu những gì đang diễn ra dưới mui xe
obimod

1
Điều này không đúng 100%. Khi tôi chạy lệnh, npm root nó sẽ báo cho tôi: Users/me/node_modules không đúng. Node_modules của tôi sống ở một nơi khác. Tôi đoán nó phụ thuộc vào cách bạn cài đặt nút. Tôi sử dụng brewđể cài đặt phần mềm của tôi. Tôi đoán đây là nếu bạn cài đặt nút từ trang web của họ bằng trình cài đặt gói của họ?
pixel 67

Tôi nghĩ rằng nó phụ thuộc vào các biến môi trường của bạn. Kiểm tra $ NPM ... vars được đặt trong enviro của bạn. Tôi có một thiết lập tùy chỉnh, sử dụng virtualenv và hook kích hoạt để viết lại hoàn toàn $ PATH từ đầu tùy thuộc vào những gì dự án sử dụng.
obimod

2
Đối với tôi, npm của tôi bị hỏng nên tôi không thể sử dụng các lệnh. Tôi muốn thực hiện cài đặt lại đầy đủ vì vậy tôi cần biết gói nào tôi đã cài đặt trên toàn cầu để xây dựng lại.
bryjohns

6

Để xem danh sách tất cả các gói được cài đặt.

$ npm ls --parseable | awk '{gsub(/\/.*\//,"",$1); print}'| sort -u

hiển thị có thể phân tích cú pháp danh sách các gói npm https://docs.npmjs.com/cli/ls#parsizable


Điều đó thật tuyệt! Làm thế nào tôi có thể chỉ hiển thị phụ thuộc dev?
Michael Bruce

5

Tôi sử dụng npm -g outdated --depth=0để liệt kê các phiên bản lỗi thời
trong không gian toàn cầu.


3

Node_modules chứa các gói do người dùng cài đặt, vì vậy hãy thay đổi thư mục thành node_modules và liệt kê các mục. Mô-đun lõi được xác định trong nguồn của nút trong lib/thư mục.

Example:

     example@example:~/:~/node_modules$ ls
     express  maxmind-native  node-whois  socket.io  ua-parser-js
     geoip    mongoskin       pdfkit      tail       zeromq
     maxmind  nodemailer      request     ua-parser  zmq

3

Bạn có thể thử trình quản lý NPM Desktop Quản lý máy tính để bàn NPM

Chỉ với một cú nhấp chuột, bạn có thể cài đặt / gỡ cài đặt các gói trong devhoặc globaltrạng thái.


2

Sử dụng npm listvà lọc bằng cách sử dụnggrep

Thí dụ:

npm list -g | grep name-of-package

2

Là một tốc ký, bạn có thể chạy:

npm ls -g --depth=0

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.