Câu trả lời:
Sử dụng list
lệnh với -g
cờ để xem tất cả các gói được cài đặt trên toàn cầu:
npm list -g
Để kiểm tra xem một gói cụ thể có được cài đặt trên toàn cầu hay không, bạn có thể cung cấp tên của gói ( grunt
trong trường hợp này) như được thấy dưới đây:
npm list -g grunt
Hoặc bạn có thể sử dụng grep
để lọc tên gói:
npm list -g | grep grunt
npm list --depth 0 --global tern
kiểm tra xem chim nhạn có được cài đặt trên toàn cầu như thể khôngnpm install -g tern
grep
có vẻ như là một giải pháp khá đáng tin cậy khi đưa ra các nhận xét về việc thoát khỏi
npm list --depth 1 --global packagename > /dev/null 2>&1
Sau đó, bạn có thể kiểm tra trạng thái thoát để xem nó đã được cài đặt hay chưa. Cảm ơn Adam Monsen .
--depth 1
! đó là những gì tôi đang tìm kiếm. Thực tế tôi đang sử dụng ngay bây giờnpm list --depth 0 -g
$?
luôn trả về 1
cho tôi, ngay cả khi gói IS được cài đặt hoặc KHÔNG được cài đặt.
Để kiểm tra xem một gói cụ thể có được cài đặt trên toàn cầu không:
npm list -g [package-name]
Hãy lấy "tiếng càu nhàu" làm ví dụ. Nếu nó được cài đặt trên toàn cầu, bạn sẽ thấy một cái gì đó như thế này
C:\data\tryout\test1>npm list -g grunt
C:\Users\xxxxxxx\AppData\Roaming\npm
└── grunt@0.4.5
Nếu nó không được cài đặt trên toàn cầu, bạn sẽ thấy một cái gì đó như thế này
C:\data\tryout\test1>npm list -g grunt
C:\Users\xxxxxxx\AppData\Roaming\npm
└── (empty)
Để kiểm tra xem một gói cụ thể có được cài đặt cục bộ hay không, bạn có thể thực hiện các lệnh tương tự như trên nhưng không có tham số -g.
nguồn: Cách kiểm tra xem gói npm đã được cài đặt trên toàn cầu hay cục bộ .
Từ gói của bạn với sindresorhus/is-installed-globally
https://github.com/sindresorhus/is-installed-globally
Sử dụng:
const isInstalledGlobally = require('is-installed-globally');
// With `npm install your-package`
console.log(isInstalledGlobally);
//=> false
// With `npm install --global your-package`
console.log(isInstalledGlobally);
//=> true
Tôi thấy điều này hữu ích khi tôi phải phân phối các tệp dựng sẵn với gói của mình: Làm cách nào để xuất bản gói npm với các tệp phân phối? Với gói này, tôi có thể kiểm tra xem cài đặt là cục bộ hay toàn cầu, sau đó sử dụng các đường dẫn tương đối cho các cài đặt cục bộ, như được hiển thị ở đây .
--depth
. Ví dụ :npm list --depth 1 --global csats-mturk > /dev/null 2>&1
. Đây là một ví dụ chi tiết hơn .