Npm paketleri nereye kurar?


977

Birisi bana kullanarak yüklediğim Node.js modüllerini nerede bulabileceğimi söyleyebilir npmmi?


3
linux nane üzerinde$HOME/.npm-global/lib/node_modules
Synxmax

9
Sadece bu yüzden her biri olmadan yükleme, bilir -gbir dizin demek yaparsanız dizin örneğin çalışma size bir modül yükleyecektir seçeneği ~/Desktop/tmpdaha sonra cd ~/Desktop/tmpdaha sonra do npm install appiumardından do lsgöreceksiniz node_modules package-lock.jsonEğer bir düğüm modülü yüklü çünkü appiumadresinden Müşteri working directorysüper çünkü kafa karıştırıcı ... -gesasen olmalı defaultama değil.
the_prole

2
@the_prole - teşekkürler, bu inanılmaz derecede faydalı oldu .
Fattie

Yanıtlar:


1142

Global kütüphaneler

npm list -gHangi global kitaplıkların kurulu olduğunu ve nerede bulunduklarını görmek için çalıştırabilirsiniz . npm list -g | head -1Yalnızca yolu gösteren kesik çıktı için kullanın . npm list --depth=0Tüm paketleri gösterecek ve yalnızca global olarak yüklenen paketleri almak için kullanabileceğiniz alt paketleri değil, yalnızca ana paketleri görüntülemek istiyorsanız , -g ie'yi eklemeniz yeterlidir npm list -g --depth=0.

Unix sistemlerde normalde küresel olarak /usr/local/lib/nodeveya /usr/local/lib/node_modulesglobal olarak kurulduklarında yerleştirilirler . NODE_PATHOrtam değişkenini bu yola ayarlarsanız, modüller düğüm tarafından bulunabilir.

Windows XP - %USERPROFILE%\AppData\npm\node_modules
Windows 7, 8 ve 10 -%USERPROFILE%\AppData\Roaming\npm\node_modules

Global olmayan kütüphaneler

Global olmayan kitaplıklar node_modulesşu anda bulunduğunuz klasöre alt klasöre yüklenir .

npm listGeçerli konumunuz için yüklenen global olmayan kitaplıkları görmek için çalıştırabilirsiniz .

Global olarak kurmak için -g seçeneğini kullanın.

npm install -g pm2- pm2 global olarak kurulacaktır. Daha sonra genellikle /usr/local/lib/node_modules( npm root -gNerede olduğunu kontrol etmek için kullanın .) Bölümünde bulunur.

npm install pm2- pm2 yerel olarak kurulacaktır. Daha sonra genellikle yerel dizinde/node_modules


26
NVM kullanıyorsanız, o zaman kullandığınız düğümün sürümüne bağlı olarak global modülleriniz birkaç yerden birinde olabilir. En iyi yol, npm list -gbaşka bir cevapta önerildiği gibi kullanmaktır .
yazılamaz

73
benim için çalışmıyor, sadece bin klasörü gösterir. "npm root -g" çalışır.
whitneyland

7
Arch linux altında, global modüller / usr / lib altındadır. "npm --help", çıktının son satırı olarak tam konumu gösterir, örneğin: npm@3.6.0 / usr / lib / node_modules / npm
Gregor

20
10 için, yerleştirilir%USERPROFILE%\AppData\Roaming\npm\node_modules
Nirmal Goswami

11
"npm root -g" doğrudur - liste işe yarayabilir, ancak çok fazla bilgi vardır, burada diğer komut size tam olarak aradığınız yeri verir. stackoverflow.com/a/24295332/174965
Adam Tolley

581

Komut npm rootsize npm paketlerinizin etkili kurulum dizinini söyleyecektir.

Geçerli çalışma dizininiz bir düğüm paketi veya düğüm paketinin bir alt diziniyse, npm rootsize yerel yükleme dizinini bildirir. npm root -ggeçerli çalışma dizinine bakılmaksızın genel yükleme kökünü gösterir.

Misal:

$ npm root -g
/usr/local/lib/node_modules

Belgelere bakın.


1
Bu cevapta +1 (en azından Linux Mint 17 Qianna ve npm 3.9.5 altında). Genel node_modulesklasörüm var /usr/local/lib/node_modules. Ne zaman yani sudo npm uninstall browserify -g(daha sudo npm install browserify -gönce yapmıştı varsayalım ) bunu oradan kaldırır.
nik_m

10
Çıktı bir grup çıktıdan yol çıkarmadan daha büyük komutlar oluşturmak için uygun olduğundan, bu çok daha kullanışlı bir cevaptır.
Adam Tolley

2
Windows işletim sisteminde varsayılan kök C: \ Kullanıcılar \ YOUR_USER_NAME \ AppData \ Roaming \ npm \ node_modules
Vincent Tang

2
MacOS Mojave 10.14.5 için de/usr/local/lib/node_modules
Jim Aho

89

Global olarak takılmış modüller için:

Diğer yanıtlar size platforma özgü yanıtlar verir, ancak genel bir yanıt şudur:

Genel modülü ile yüklediğinizde npm install -g something, npm prefix, modülün nereye kurulacağını bilmek için bir yapılandırma değişkeni arar .

Bu değeri çalıştırarak elde edebilirsiniz npm config get prefix

Bu klasörde bulunan tüm genel modülleri görüntülemek için kullanın npm ls -g --depth 0( depth 0bağımlılıklarını göstermemek için).

Eğer küresel modülleri yolu kullanımını değiştirmek istiyorsanız npm config editve koyun prefix = /my/npm/global/modules/prefixdosya veya kullanımda npm config set prefix /my/npm/global/modules/prefix.

Nodist gibi bazı araçlar kullandığınızda , global npm modüllerinin platform varsayılan kurulum yolunu değiştirirler.


2
Takip eden sorumu yanıtladınız: "Birisi bana Node.js modüllerinin yerini nasıl değiştirebileceğimi söyleyebilir mi?" Not: Bunun benim için önemli olmasının nedeni, PATH'ımı bir daha değiştirmek zorunda kalmamamdı. {Npm config get prefx} 'in açtığı npmrc dosyasındaki varsayılan öneriyi uncommented ettim.
HeyZiko

"Nodist gibi bazı araçlar kullandığınızda, global npm modüllerinin platform varsayılan kurulum yolunu değiştirirler." +1
Jim Aho

65

Pencerelerde bulurdum npm list -g. Varsayılan olarak (global) paketlerim kuruluyordu C:\Users\[Username]\AppData\Roaming\npm.


9
Just FYI - Bu, yürüten kullanıcının% appdata% \ npm
Felix

19

Npm'in yüklediği yürütülebilir dosyayı arıyorsanız, belki de PATH'inize koymak istediğiniz için,

npm bin

veya

npm bin -g

Düğümün homebrew ile yüklendiği ve daha sonra npm'in kendisiyle güncellendiği npm paketlerini global olarak kurduysanız, command not foundhatalar alıyor olabilirsiniz . Eğer öyleyse, yukarıdakileri PATH'inize ekleyin: export PATH=$PATH:$(npm bin -g)voila
jacob

18

NPM modüllerinin önceki sürümlerinde her zaman / usr / local / lib / node ya da .npmrc dosyasında npm kökü belirttiğiniz herhangi bir yere yerleştirilmişti. Bununla birlikte, NPM 1.0+ modüllerinde iki yere monte edilir. /.Node_modules içinde uygulamanıza yerel olarak kurulu modüllere sahip olabilirsiniz veya yukarıdakileri kullanacak şekilde bunları küresel olarak yükleyebilirsiniz.

Daha fazla bilgi https://github.com/isaacs/npm/blob/master/doc/install.md adresinde bulunabilir.


4
1.0 modülleriyle dikkat edilmesi gereken bir şey / usr / local / lib / node_modules içinde saklanır.
Nick Campbell

@EricSmith bağlantınız da koptu
nicolimo86

16

Doğrudan cevap değil ama yardımcı olabilir ....

Npm ayrıca npm config get cache( %AppData%/npm-cacheWindows'ta) çalıştırılarak bulunabilen bir önbellek klasörüne sahiptir .

Npm modülleri ilk önce buraya indirilir ve daha sonra npm global klasörüne ( %AppData%/Roaming/npmWindows'ta) veya projeye özgü klasöre ( your-project/node_modules) kopyalanır .

Eğer npm paketlerini ve bazılarını izlemek istiyorsanız, indirilen tüm npm paketlerinin listesi (npm önbelleği temizlenmediyse) bu klasöre bir göz atın. Klasör yapısı aşağıdaki gibidir{cache}/{name}/{version}

Bu, https://docs.npmjs.com/cli/cache adresine de yardımcı olabilir.


14

Modül global ( -g) bayrağıyla yüklenmişse, aşağıdaki komutu çalıştırarak üst konumu alabilirsiniz

npm get prefix

veya

npm ls -g --depth=0

kurulu modüller listesi ile birlikte konum yazdıracak

Şerefe :-)


13

Bunu yapmanın en kolay yolu

npm listesi -g

paketi listelemek ve kurulu konumlarını görüntülemek için.

Chopm üzerinde npm yükledim, bu yüzden konum

C: \ MyProgramData \ chocolatey \ lib \ nodejs.commandline.0.10.31 \ aletler \ node_modules

C: \ MyProgramData \ chocolatey repo konumudur.


12

Bağımlılık olmadan kompakt bir liste almak için

npm list -g --depth 0

6

Sen bulabilirsiniz küresel yüklü modülleri emriyle

npm list -g

Size node.js modüllerinin kurulu olduğu konumu sağlayacaktır.

C:\Users\[Username]\AppData\Roaming\npm

Bir klasöre yerel olarak node.js modüllerini yüklerseniz , konumu görmek için aşağıdaki komutu yazabilirsiniz.

npm list

4

Gönderen docs :

Npm 1.0'da, bir şeyler kurmanın iki yolu vardır:

  • global - Bu modülleri düşer {prefix}/lib/node_modulesve içinde koyar çalıştırılabilir dosyaları {prefix}/bin, {prefix}genellikle gibi bir şeydir /usr/local. Ayrıca {prefix}/share/man, sağlanmışsa man sayfalarını da yükler .

  • locally - Bu paketinizi geçerli çalışma dizinine yükler. Düğüm modülleri girilir ./node_modules, yürütülebilir dosyalar girer ./node_modules/.bin/ve kılavuz sayfalar hiç yüklenmez.

Eğer alabilirsiniz {prefix}ile npm config get prefix. (Düğümü nvm ile kurduğunuzda kullanışlıdır).


3

Gönderen docs :

Paketler, önek altındaki node_modules klasörüne bırakılır. Yerel olarak kurarken bu, ana modülünü yüklemenizi ("paket_adı") veya diğer modülleri yüklemek için ("paket_adı / lib / path / to / sub / module") gerektirebileceğiniz anlamına gelir.

Unix sistemlerine genel yüklemeler {prefix} / lib / node_modules adresine gider. Windows üzerindeki genel yüklemeler {prefix} / node_modules (yani lib klasörü yok) adresine gider.

Kapsamlı paketler aynı şekilde yüklenir, ancak ilgili node_modules klasörünün bir alt klasöründe bu sembolün önekinin adıyla @ simgesiyle gruplandırılması dışında, ör. Npm install @ myorg / package paketi {prefix} / node_modules / @ myorg / paketi. Daha fazla ayrıntı için kapsama bakın.

Bir pakete () gereksinim duymak istiyorsanız, yerel olarak yükleyin.

Eğer alabilirsiniz {prefix}ile npm config get prefix. (Düğümü nvm ile kurduğunuzda kullanışlıdır).

Yerel olarak hakkında bilgi edinin . Global olarak
okuyun .



3

Ben gerçek yapılandırma arama deli olmaya başlamıştı, bu yüzden burada linux yapılandırma dosyaları listesi:

  • / Etc / npmrc
  • /home/youruser/.npmrc
  • /root/.npmrc

Windows üzerinde: - c / Program \ Files / nodejs / node_modules / npm / npmrc

Sonra dosyada önek yapılandırılır:

prefix=/usr

Önek varsayılan olarak Linux'ta / usr, Windows'ta $ {APPDATA} \ npm

Düğüm modülleri $ önek ağacının altında ve yol $ önek / bin içermelidir

Bir sorun olabilir:

  • Genel olarak yüklediğinizde, "sudo su" kullanın, sonra /root/.npmrckullanılabilir!
  • Sudo olmadan yerel olarak kullandığınızda: kullanıcılarınız için /home/youruser/.npmrc.
  • Yolunuz ön ekinizi temsil etmediğinde
  • Kullandığınızda npm set -g prefix /usr/ etc / npmrc global değerini ayarlar, ancak yerel ayarları geçersiz kılmaz

Burada neyin yapılandırıldığını bulmak için eksik olan tüm bilgiler. Umarım kapsamlı biriyim.


2

Diğer cevapların söylediği gibi, en iyi yol

npm list -g

Ancak, çok sayıda npm paket yüklüyse, bu komutun çıktısı çok uzun ve yukarı kaydırmak için büyük bir acı olabilir (bazen o kadar geriye kaydırmak bile mümkün değildir).

Bu durumda, çıkışı moreprograma bağlayın, böyle

npm list -g | more

2

Windows 10 : Koştuğumdanpm prefix -g, yükleme konumunun git kabuk yolunda kullandığım yolun içinde olduğunu fark ettim. Bu konum yola eklenmiş olsa bile, genel olarak yüklenen paketin komutu tanınmaz. Düzelten:

  1. çalışan npm config edit
  2. öneki 'C: \ Users \ kullanıcı adı \ AppData \ Roaming \ npm' olarak değiştirme
  3. bu yolu sistem yolu değişkenine ekleme
  4. -g ile yeniden yükleme.

2

Diğer cevaplara genişleme -

npm list -g

size global olarak yüklenen paketlerin konumunu gösterecektir.

Bu listeyi, metin düzenleyicinizde kolayca arayabileceğiniz bir dosyaya çıkarmak istiyorsanız:

npm list -g > ~/Desktop/npmfiles.txt



1

Global dir kodunuza erişmeye çalışıyorsanız, geri izleme yapabilirsiniz process.execPath. Örneğin wsproxy, içinde olanı bulmak için {NODE_GLOBAL_DIR}/bin/wsproxyşunları yapabilirsiniz:

path.join(path.dirname(process.execPath), 'wsproxy')

Ayrıca klibinnpm @ ec9fcc1/lib/npm.js#L254 ile nasıl çalıştığı da vardır:

path.resolve(process.execPath, '..', '..')

Ayrıca bkz. ec9fcc1/Lib/install.js#L521 :

var globalPackage = path.resolve(npm.globalPrefix,
                                 'lib', 'node_modules', moduleName(pkg))

Nerede globalPrefixvarsayılan olarak ec9fcc1/lib/config/defaults.js#L92-L105 olarak ayarlanmıştır :

if (process.env.PREFIX) {
    globalPrefix = process.env.PREFIX
} else if (process.platform === 'win32') {
    // c:\node\node.exe --> prefix=c:\node\
    globalPrefix = path.dirname(process.execPath)
} else {
    // /usr/local/bin/node --> prefix=/usr/local
    globalPrefix = path.dirname(path.dirname(process.execPath))

    // destdir only is respected on Unix
    if (process.env.DESTDIR) {
        globalPrefix = path.join(process.env.DESTDIR, globalPrefix)
    }
}

Bu nasıl olmalı? Örneğin, Düğüm ikilisi /usr/bin/nodeaçıktır, ancak açıkçası (bu bölme olduğu için) modüller orada değildir; yerine /usr/lib/node_modules.
Florian Rappl

npmUygulamaya referans ile güncellendi
AT

Şimdi bu farklı bir hikaye; platformu (iyi) ve ilgili env değişkenlerini (moduleName gibi önemli işlevlerin ne yaptığından bahsetmese de, ama ortalama okuyucunun çıkarım yapabileceğini tahmin ediyorum). Değişiklik / düzeltme için teşekkürler!
Florian Rappl

1

Visual Studio yüklüyse, düğümü kendiniz yüklediğinizde yolda olandan ayrı olarak kendi düğüm kopyası ile birlikte gelir - Mine C: \ Program Files (x86) \ Microsoft Visual Studio \ 2019'da \ Toplum \ MSBuild \ Microsoft \ VisualStudio \ NodeJs.

Bu dizinin içinden npm komutunu çalıştırırsanız, visual studio içinde hangi düğüm modüllerinin kurulu olduğunu öğreneceksiniz.


0

Windows 7, 8 ve 10 -% USERPROFILE% \ AppData \ Roaming \ npm \ node_modules.

Not: Klasörde cd ..olana kadar klasör türünde bir C:yerdeyseniz. Sonra yazın cd %USERPROFILE%\AppData\Roaming\npm\node_modules. Ve sihirli bir %USERPROFILE%şekilde değişecek Users\YourUserProfile\. Sadece Deckoilk yanıtta atıfta bulunulan fikirlere açıklık getirmek istedim . npm list -gglobal olarak yüklediğiniz tüm bitleri listeleyecektir. Eğer proje ile ilgili bulmanız gerekiyorsa npm packageo zaman cd 'your angular project xyz', o zaman çalıştırın npm list. İçindeki modüllerin listesini gösterecektir npm package. Ayrıca size dependencieseksiklerin listesini verir ve bu projeyi etkili bir şekilde yürütmeniz gerekebilir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.