Waar installeert npm pakketten?

Kan iemand me vertellen waar ik de Node.js-modules kan vinden, die ik heb geïnstalleerd met npm?


Antwoord 1, autoriteit 100%

Globale bibliotheken

Je kunt npm list -guitvoeren om te zien welke globale bibliotheken zijn geïnstalleerd en waar ze zich bevinden. Gebruik npm list -g | head -1voor afgekapte uitvoer met alleen het pad. Als u alleen de hoofdpakketten wilt weergeven en niet de subpakketten die ermee worden geïnstalleerd, kunt u – npm list --depth=0gebruiken die alle pakketten toont en om alleen globaal geïnstalleerde pakketten te krijgen, voeg gewoon -g toe, dwz npm list -g --depth=0.

Op Unix-systemen worden ze normaal gesproken in /usr/local/lib/nodeof /usr/local/lib/node_modulesgeplaatst wanneer ze wereldwijd zijn geïnstalleerd. Als u de omgevingsvariabele NODE_PATHop dit pad instelt, kunnen de modules per knooppunt worden gevonden.

Windows XP – %USERPROFILE%\AppData\npm\node_modules
Windows 7, 8 en 10 – %USERPROFILE%\AppData\Roaming\npm\node_modules

Niet-wereldwijde bibliotheken

Niet-globale bibliotheken worden geïnstalleerd in de submap node_modulesin de map waarin u zich momenteel bevindt.

U kunt npm listuitvoeren om de geïnstalleerde niet-globale bibliotheken voor uw huidige locatie te zien.

Gebruik bij het installeren de optie -g om wereldwijd te installeren

npm install -g pm2– pm2 wordt wereldwijd geïnstalleerd. Het is dan meestal te vinden in /usr/local/lib/node_modules(gebruik npm root -gom te controleren waar.)

npm install pm2– pm2 wordt lokaal geïnstalleerd. Het is dan meestal te vinden in de lokale map in /node_modules


Antwoord 2, autoriteit 48%

Het commando npm rootvertelt je de effectieve installatiemap van je npm-pakketten.

Als uw huidige werkmap een knooppuntpakket of een submap van een knooppuntpakket is, zal npm rootu de lokale installatiemap vertellen. npm root -gtoont de globale installatieroot ongeacht de huidige werkmap.

Voorbeeld:

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

Zie de documentatie.


Antwoord 3, autoriteit 7%

Voor wereldwijd geïnstalleerde modules:

De andere antwoorden geven u platformspecifieke antwoorden, maar een algemene is deze:

Als je een globale module installeert met npm install -g something, zoekt npm een configuratievariabele prefixop om te weten waar de module moet worden geïnstalleerd.

U kunt die waarde verkrijgen door npm config get prefix

uit te voeren

Om alle globale modules die in die map beschikbaar zijn weer te geven, gebruik npm ls -g --depth 0(depth 0om hun afhankelijkheden niet weer te geven).

Als u het globale modulepad wilt wijzigen, gebruikt u npm config editen plaatst u prefix = /my/npm/global/modules/prefixin het bestand of gebruikt u npm config set prefix /my/npm/global/modules/prefix.

Als je bepaalde tools gebruikt, zoals nodist, veranderen ze het platform-standaard installatiepad van globale npm-modules .


Antwoord 4, autoriteit 5%

In Windows heb ik npm list -ggebruikt om erachter te komen. Standaard werden mijn (algemene) pakketten geïnstalleerd op C:\Users\[Username]\AppData\Roaming\npm.


Antwoord 5, autoriteit 2%

Als u op zoek bent naar het uitvoerbare bestand dat NPM is geïnstalleerd, misschien omdat u het op uw pad wilt plaatsen, kunt u eenvoudig

npm bin

of

npm bin -g

6

In eerdere versies van NPM-modules werden altijd in / usr / lokale / lib / node geplaatst of waar u de NPM-root in het .npMRC-bestand hebt opgegeven. In NPM worden 1.0+ modules echter op twee plaatsen geïnstalleerd. U kunt modules plaatsen die lokaal zijn geïnstalleerd in uw toepassing in /.node_modules of u kunt ze wereldwijd hebben geïnstalleerd die het bovenstaande zullen gebruiken.

Meer informatie is te vinden op https://github.com/isaacs/npm/blob /master/doc/install.md


7

Niet direct antwoord, maar kan helpen ….

De NPM heeft ook een cache-map, die te vinden is door npm config get cache(%AppData%/npm-cacheop vensters).

De NPM-modules worden hier eerst gedownload en vervolgens gekopieerd naar NPM GLOBAL MAP (%AppData%/Roaming/npmop Windows) of projectspecifieke map (your-project/node_modules).

Dus als u NPM-pakketten wilt bijhouden, en sommige hoe, de lijst met alle gedownloade NPM-pakketten (als de NPM-cache niet is schoongemaakt) naar deze map bekijken. De mapstructuur is als {cache}/{name}/{version}

Dit kan ook helpen https://docs.npmjs.com/cli/cache


8

Om een ​​compacte lijst zonder afhankelijkheden te krijgen, gebruikt u gewoon

npm list -g --depth 0

9

Als een module is geïnstalleerd met de vlag van de wereld (-g), kunt u de bovenliggende locatie krijgen door te draaien:

npm get prefix

of

npm ls -g --depth=0

die de locatie afdrukken, samen met de lijst met geïnstalleerde modules.


10

De eenvoudigste manier zou zijn om

te doen

NPM-lijst-g

Om het pakket te vermelden en hun geïnstalleerde locatie te bekijken.

Ik had NPM geïnstalleerd via chololatey, dus de locatie is

C: \ myprogramdata \ chocolatey \ lib \ nodejs.commandline.0.10.31 \ Tools \ NODE_MODULES

C: \ myprogramdata \ is chocolade repo locatie.


11

U kunt wereldwijd vinden geïnstalleerde modules door de opdracht

npm list -g

Het geeft u de locatie waar Node.js-modules zijn geïnstalleerd.

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

Als u Node.js-modules lokaal in een map installeert, kunt u de volgende opdracht typen om de locatie te bekijken.

npm list

12

Ik begon boos te zijn tijdens het zoeken naar de echte configuratie, dus hier is de lijst met alle configuratiebestanden op Linux:

  • / etc / npmrc
  • /home/youruser/.npmrc
  • /ROOT/.NPMRC
  • ./. NPMRC in de huidige map naast Package.json-bestand (dankzij @Cyrillepontvieux)

Op Windows:

  • C / PROGRAMMA \ Bestanden / NODEJS / NODE_MODULES / NPM / NPMRC

In dit bestand is het voorvoegsel geconfigureerd:

prefix=/usr

Het voorvoegsel is standaard /usr in linux, ${APPDATA}\npm in Windows

De node-modules bevinden zich onder de $prefix-structuur en het pad moet $prefix/bin bevatten

Er kan een probleem zijn:

  • Als je globaal installeert, gebruik je “sudo su” en dan mag de /root/.npmrcworden gebruikt!
  • Als je lokaal gebruikt zonder sudo: voor je gebruiker is dit de /home/youruser/.npmrc.
  • Als je pad niet je voorvoegsel vertegenwoordigt
  • Als je npm set -g prefix /usrgebruikt, wordt de /etc/npmrc global ingesteld, maar wordt de lokale niet overschreven

Hier is alle informatie die ontbrak om te vinden wat waar is geconfigureerd. Ik hoop dat ik volledig ben geweest.


Antwoord 13

Van de documenten:

In npm 1.0 zijn er twee manieren om dingen te installeren:

  • wereldwijd —- Dit plaatst modules in {prefix}/lib/node_modulesen plaatst uitvoerbare bestanden in {prefix}/bin, waar {prefix}is meestal
    zoiets als /usr/local. Het installeert ook man-pagina’s in
    {prefix}/share/man, als ze worden geleverd.

  • lokaal —- Dit installeert uw pakket in de huidige werkdirectory. Knooppuntmodules gaan in ./node_modules, uitvoerbare bestanden gaan erin
    ./node_modules/.bin/, en man-pagina’s zijn helemaal niet geïnstalleerd.

U kunt uw {prefix}verkrijgen met npm config get prefix. (Nuttig wanneer je node met nvm hebt geïnstalleerd).


Antwoord 14

Windows 10: toen ik npm prefix -guitvoerde, merkte ik dat de installatielocatie zich binnen het pad van de git-shell bevond dat ik gebruikt om te installeren. Zelfs wanneer die locatie aan het pad werd toegevoegd, zou de opdracht van het globaal geïnstalleerde pakket niet worden herkend. Opgelost door:

  1. met npm config edit
  2. het voorvoegsel wijzigen in ‘C:\Users\gebruikersnaam\AppData\Roaming\npm’
  3. dat pad toevoegen aan de systeempadvariabele
  4. het pakket opnieuw installeren met -g.

Antwoord 15

Van de docs:

Pakketten worden onder het voorvoegsel in de map node_modules geplaatst.
Als u lokaal installeert, betekent dit dat u:
vereisen (“pakketnaam”) om de hoofdmodule te laden, of
vereisen (“pakketnaam/lib/pad/naar/sub/module”) om andere modules te laden.

Globale installaties op Unix-systemen gaan naar {prefix}/lib/node_modules.
Globale installaties op Windows gaan naar {prefix}/node_modules (dat wil zeggen, nee
lib map.)

Bestreken pakketten worden op dezelfde manier geïnstalleerd, behalve dat ze gegroepeerd zijn
samen in een submap van de relevante map node_modules met de
naam van dat bereikvoorvoegsel door het @-teken, bijv. npm installeren
@myorg/package zou het pakket plaatsen in
{prefix}/node_modules/@myorg/package. Zie bereik voor meer details.

Als je een pakket nodig() hebt, installeer het dan lokaal.

U kunt uw {prefix}verkrijgen met npm config get prefix. (Nuttig wanneer je node met nvm hebt geïnstalleerd).

Lees over lokaal.
Lees meer over wereldwijd.


Antwoord 16

In Ubuntu 14.04 zijn ze geïnstalleerd op

/usr/lib/node_modules


Antwoord 17

Zoals de andere antwoorden zeggen, is de beste manier om te doen

npm list -g

Als je echter een groot aantal npm-pakketten hebt geïnstalleerd, kan de uitvoer van dit commando erg lang zijn en lastig om omhoog te scrollen (soms is het niet eens mogelijk om zo ver terug te scrollen ).

In dit geval, pipet de uitvoer naar het programma more, zoals dit

npm list -g | more

Antwoord 18

  • Echo de config: npm config lsof npm config list

  • Toon alle configuratie-instellingen: npm config ls -lof npm config ls --json

  • Druk de effectieve map node_modulesaf: npm rootof npm root -g

  • Druk het lokale voorvoegsel af: npm prefixof npm prefix -g

    (Dit is de dichtstbijzijnde bovenliggende map die een package.json-bestand of node_modulesmap bevat)



Antwoord 19

Uitbreiding van andere antwoorden.

npm list -g

toont u de locatie van globaal geïnstalleerde pakketten.

Als u die lijst naar een bestand wilt uitvoeren dat u kunt zoeken in uw teksteditor:

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

20

BTW, NPM zal zoeken naar NODE_MODULES in moedermappen (tot aan de zeer root) als deze niet in lokaal kan vinden.


21

Als u probeert toegang te krijgen tot uw wereldwijde dir uit de code, kunt u backtrack van process.execPath. Om bijvoorbeeld wsproxyte vinden, die in {NODE_GLOBAL_DIR}/bin/wsproxy, kunt u gewoon:

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

Er is ook hoe de npmcli werkt @ ec9fcc1/LIB/NPM.JS#L254 MET:

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

Zie ook ec9fcc1/ lib / install.js # l521 :

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

waar globalPrefixheeft een standaardset in ec9fcc1/LIB/CONFIG/DEFAULTS.JS#L92-L105 VAN:

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)
    }
}

22

Als u Visual Studio hebt geïnstalleerd, vindt u dat het wordt geleverd met zijn eigen exemplaar van knooppunt gescheiden van degene die op het pad staat wanneer u Node zelf hebt geïnstalleerd – de mijne staat in C: \ Program Files (X86) \ Microsoft Visual Studio \ 2019 \ Community \ MSBUILD \ MICROSOFT \ VISUALSTUDIO \ NODEJS.

Als u de NPM-opdracht uit de binnenkant van deze map uitvoert, vindt u erachter welke knooppuntmodules binnen Visual Studio zijn geïnstalleerd.

Other episodes