Bagaimana cara mengetahui apakah paket npm telah diinstal secara global atau lokal

153

Saya menginstal grunt, node, npm, bower, dan grunt-cli di windows7.

Instruksi mengatakan saya harus menjalankan perintah install dengan -g flag untuk global.

Bagaimana saya bisa memeriksa apakah saya menggunakan flag -g ketika saya menginstal. Dibutuhkan banyak waktu untuk menghapus instalan dan menginstalnya kembali.

AndraeRay
sumber

Jawaban:

219

Gunakan listperintah dengan -gbendera untuk melihat semua paket yang diinstal secara global:

npm list -g

Untuk memeriksa apakah paket tertentu diinstal secara global, Anda dapat memberikan nama paket ( gruntdalam hal ini) seperti terlihat di bawah:

npm list -g grunt

Atau Anda dapat menggunakan grepuntuk memfilter nama paket:

npm list -g | grep grunt

Sumber: https://docs.npmjs.com/cli/ls

Muntaser Ahmed
sumber
4
Untuk boolean "terpasang atau tidak?" periksa, coba gunakan --depth. Sebagai contoh: npm list --depth 1 --global csats-mturk > /dev/null 2>&1. Inilah contoh yang lebih rinci .
Adam Monsen
2
@ AdamMonsen, saya mencari instalasi tingkat tinggi dari barang. Saya dulu npm list --depth 0 --global ternmemeriksa apakah barang diinstal secara global seolahnpm install -g tern
Sudhi
grepsepertinya solusi yang cukup andal mengingat komentar tentang npm keluar dengan kesalahan karena dependensi yang tidak terpenuhi
myol
31
npm list --depth 1 --global packagename > /dev/null 2>&1

Anda kemudian dapat memeriksa status keluar untuk melihat apakah itu diinstal atau tidak. Terima kasih Adam Monsen .

Flimm
sumber
3
terima kasih untuk --depth 1! itulah yang saya cari. Sebenarnya saya menggunakan sekarangnpm list --depth 0 -g
kembali
Untuk beberapa alasan $?selalu kembali 1untuk saya, bahkan jika paket tersebut terinstal atau TIDAK diinstal.
Katie
4
PERINGATAN: npm akan selalu keluar dengan kesalahan jika salah satu paket Anda memiliki dependensi yang tidak terpenuhi, bahkan jika paket diinstal . @ Kayvar inilah sebabnya npm mengembalikan 1 untuk Anda.
Codebling
17

Untuk memeriksa apakah paket tertentu diinstal secara global, jalankan:

npm list -g [package-name]

Mari kita ambil "mendengus" sebagai contoh. Jika diinstal secara global, Anda akan melihat sesuatu seperti ini

C:\data\tryout\test1>npm list -g grunt
C:\Users\xxxxxxx\AppData\Roaming\npm
└── grunt@0.4.5

Jika tidak diinstal secara global, Anda akan melihat sesuatu seperti ini

C:\data\tryout\test1>npm list -g grunt
C:\Users\xxxxxxx\AppData\Roaming\npm
└── (empty)

Untuk memeriksa apakah paket tertentu diinstal secara lokal, Anda dapat menjalankan perintah yang sama seperti di atas tetapi tanpa parameter -g.

sumber: Cara memeriksa apakah paket npm diinstal secara global atau lokal .

mvermand
sumber
6

Anda dapat mendaftar semua paket global dengan perintah:

npm ls -g

Atau periksa paket tertentu dengan:

npm ls -g [package-name] 

Sebagai contoh: npm ls -g @angular/cli

Mwiza
sumber
1

Di Windows kami menggunakan perintah berikut untuk mencari tahu apakah paket diinstal atau tidak. Silakan lihat gambar untuk detailnya.

npm list -g | find "create"

hasil sampel

SHARATH P
sumber
0

Dari paket Anda dengan sindresorhus/is-installed-globally

https://github.com/sindresorhus/is-installed-globally

Pemakaian:

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

Saya menemukan ini berguna ketika saya harus mendistribusikan file prebuilt dengan paket saya: Bagaimana cara mempublikasikan paket npm dengan file distribusi? Dengan paket ini, saya dapat memeriksa apakah instalasi lokal atau global, dan kemudian menggunakan jalur relatif untuk instalasi lokal, seperti yang ditunjukkan di sini .

Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功
sumber