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 -g
uitvoeren om te zien welke globale bibliotheken zijn geïnstalleerd en waar ze zich bevinden. Gebruik npm list -g | head -1
voor 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=0
gebruiken 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/node
of /usr/local/lib/node_modules
geplaatst wanneer ze wereldwijd zijn geïnstalleerd. Als u de omgevingsvariabele NODE_PATH
op 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_modules
in de map waarin u zich momenteel bevindt.
U kunt npm list
uitvoeren 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 -g
om 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 root
vertelt je de effectieve installatiemap van je npm-pakketten.
Als uw huidige werkmap een knooppuntpakket of een submap van een knooppuntpakket is, zal npm root
u de lokale installatiemap vertellen. npm root -g
toont de globale installatieroot ongeacht de huidige werkmap.
Voorbeeld:
$ npm root -g
/usr/local/lib/node_modules
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 prefix
op 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 0
om hun afhankelijkheden niet weer te geven).
Als u het globale modulepad wilt wijzigen, gebruikt u npm config edit
en plaatst u prefix = /my/npm/global/modules/prefix
in 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 -g
gebruikt 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-cache
op vensters).
De NPM-modules worden hier eerst gedownload en vervolgens gekopieerd naar NPM GLOBAL MAP (%AppData%/Roaming/npm
op 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/.npmrc
worden 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 /usr
gebruikt, 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_modules
en 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 -g
uitvoerde, 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:
- met
npm config edit
- het voorvoegsel wijzigen in ‘C:\Users\gebruikersnaam\AppData\Roaming\npm’
- dat pad toevoegen aan de systeempadvariabele
- 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 ls
ofnpm config list
-
Toon alle configuratie-instellingen:
npm config ls -l
ofnpm config ls --json
-
Druk de effectieve map node_modulesaf:
npm root
ofnpm root -g
-
Druk het lokale voorvoegsel af:
npm prefix
ofnpm 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 wsproxy
te vinden, die in {NODE_GLOBAL_DIR}/bin/wsproxy
, kunt u gewoon:
path.join(path.dirname(process.execPath), 'wsproxy')
Er is ook hoe de npm
cli 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 globalPrefix
heeft 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.