¿Dónde instala npm los paquetes?
Frecuentes
Visto 834,101 veces
23 Respuestas
1338
Bibliotecas globales
Tu puedes correr npm list -g
para ver qué bibliotecas globales están instaladas y dónde se encuentran. Utilizar npm list -g | head -1
para una salida truncada que muestra solo la ruta. Si desea mostrar solo los paquetes principales, no los subpaquetes que se instalan junto con él, puede usar npm list --depth=0
que mostrará todos los paquetes y para obtener solo paquetes instalados globalmente, simplemente agregue -g ie npm list -g --depth=0
.
En los sistemas Unix normalmente se colocan en /usr/local/lib/node
or /usr/local/lib/node_modules
cuando se instala globalmente. Si configura el NODE_PATH
variable de entorno a esta ruta, los módulos se pueden encontrar por nodo.
Windows XP - %USERPROFILE%\AppData\npm\node_modules
Windows 7, 8 y 10 - %USERPROFILE%\AppData\Roaming\npm\node_modules
Bibliotecas no globales
Las bibliotecas no globales se instalan node_modules
subcarpeta en la carpeta en la que se encuentra actualmente.
Tu puedes correr npm list
para ver las bibliotecas no globales instaladas para su ubicación actual.
Al instalar, use la opción -g para instalar globalmente
npm install -g pm2
- pm2 se instalará globalmente. Entonces normalmente se encontrará en /usr/local/lib/node_modules
(Utilizar npm root -g
para comprobar dónde.)
npm install pm2
- pm2 se instalará localmente. Por lo general, se encontrará en el directorio local en /node_modules
respondido 20 nov., 19:20
Si está usando nvm, entonces sus módulos globales pueden estar en uno de varios lugares dependiendo de la versión del nodo que esté usando en ese momento. La mejor forma es utilizar npm list -g
como se sugiere en otra respuesta. - inescrutable
no me funciona, solo muestra la carpeta bin. "npm root -g" funciona. - Whitneyland
bajo Arch linux, los módulos globales están bajo / usr / lib. "npm --help" muestra la ubicación exacta como la última línea de la salida, por ejemplo: npm@3.6.0 / usr / lib / node_modules / npm - Gregor
para windows 10, colocado en %USERPROFILE%\AppData\Roaming\npm\node_modules
- Nirmal Gosvami
"npm root -g" es correcto - la lista podría funcionar pero es demasiada información, mientras que el otro comando solo le da la ubicación exacta que está buscando. stackoverflow.com/a/24295332/174965 - Adán Tolley
644
El comando npm root
le dirá el directorio de instalación efectivo de sus paquetes npm.
Si su directorio de trabajo actual es un paquete de nodos o un subdirectorio de un paquete de nodos, npm root
le dirá el directorio de instalación local. npm root -g
mostrará la raíz de instalación global independientemente del directorio de trabajo actual.
Ejemplo:
$ npm root -g
/usr/local/lib/node_modules
Respondido 20 Abr '20, 20:04
+1 en esta respuesta (al menos bajo Linux Mint 17 Qianna y npm 3.9.5). Mi global node_modules
carpeta están en /usr/local/lib/node_modules
. Cuando lo hago es decir sudo npm uninstall browserify -g
(suponiendo que hubiera hecho sudo npm install browserify -g
antes) lo quita de allí. - nik_m
Esta es una respuesta mucho más útil, ya que el resultado es adecuado para componer comandos más grandes sin extraer la ruta de un montón de resultados. - Adán Tolley
La raíz predeterminada en el sistema operativo Windows es C: \ Users \ YOUR_USER_NAME \ AppData \ Roaming \ npm \ node_modules - Vicente Tang
Para MacOS Mojave 10.14.5 también es /usr/local/lib/node_modules
- jim aho
99
Para módulos instalados globalmente:
Las otras respuestas le brindan respuestas específicas de la plataforma, pero una genérica es esta:
Cuando instala el módulo global con npm install -g something
, npm busca una variable de configuración prefix
para saber dónde instalar el módulo.
Puede obtener ese valor ejecutando npm config get prefix
Para mostrar todos los módulos globales disponibles en esa carpeta, use npm ls -g --depth 0
(depth 0
para no mostrar sus dependencias).
Si desea cambiar la ruta de los módulos globales, use npm config edit
y poner prefix = /my/npm/global/modules/prefix
en el archivo o uso npm config set prefix /my/npm/global/modules/prefix
.
Cuando usas algunas herramientas como nodista, cambian la ruta de instalación predeterminada de la plataforma de los módulos npm globales.
respondido 12 mar '19, 17:03
Respondiste a mi pregunta de seguimiento: "¿Alguien puede decirme cómo puedo cambiar la ubicación de los módulos de Node.js? " Nota: La razón por la que esto era importante para mí era que no tenía que cambiar mi PATH una vez más. Descomenté la sugerencia predeterminada en el archivo npmrc que abre {npm config get prefx}. - HolaZiko
24
Si está buscando el ejecutable que npm instaló, tal vez porque le gustaría ponerlo en su RUTA, simplemente puede hacer
npm bin
or
npm bin -g
Respondido el 02 de enero de 18 a las 21:01
Si ha instalado globalmente paquetes npm donde el nodo se instaló con homebrew y luego npm se actualizó con npm, es posible que esté obteniendo command not found
errores. Si es así, agregue lo anterior a su RUTA: export PATH=$PATH:$(npm bin -g)
listo - jakob jingleheimer
19
En versiones anteriores de NPM, los módulos siempre se colocaban en / usr / local / lib / node o donde se especificaba la raíz de npm dentro del archivo .npmrc. Sin embargo, en NPM 1.0+ los módulos se instalan en dos lugares. Puede tener módulos instalados localmente para su aplicación en /.node_modules o puede tenerlos instalados globalmente, lo que usará lo anterior.
Se puede encontrar más información en https://github.com/isaacs/npm/blob/master/doc/install.md
contestado el 08 de mayo de 11 a las 17:05
Algo a tener en cuenta: con 1.0, los módulos se almacenan en / usr / local / lib / node_modules. - Nick Campbell
@EricSmith tu enlace también está roto - nicolimo86
El enlace en respuesta está muerto - "404 | Página no encontrada". - Pang
19
No es una respuesta directa, pero puede ayudar ...
El npm también tiene una carpeta de caché, que se puede encontrar ejecutando npm config get cache
(%AppData%/npm-cache
en Windows).
Los módulos npm se descargan primero aquí y luego se copian en la carpeta global npm (%AppData%/Roaming/npm
en Windows) o carpeta específica del proyecto (your-project/node_modules
).
Entonces, si desea rastrear paquetes npm, y de alguna manera, la lista de todos los paquetes npm descargados (si la caché npm no se limpia) eche un vistazo a esta carpeta. La estructura de carpetas es la {cache}/{name}/{version}
Esto también puede ayudar https://docs.npmjs.com/cli/cache
Respondido 28 ago 19, 05:08
17
Para obtener una lista compacta sin dependencias, simplemente use
npm list -g --depth 0
respondido 14 mar '19, 18:03
16
Si se instaló un módulo con el global (-g
), puede obtener la ubicación principal ejecutando:
npm get prefix
or
npm ls -g --depth=0
que imprimirá la ubicación junto con la lista de módulos instalados.
Respondido 22 ago 20, 02:08
14
La forma más fácil sería hacer
lista npm -g
para listar el paquete y ver su ubicación instalada.
Había instalado npm a través de chololatey, por lo que la ubicación es
C: \ MyProgramData \ chocolatey \ lib \ nodejs.commandline.0.10.31 \ tools \ node_modules
C: \ MyProgramData \ es la ubicación del repositorio de chocolate.
Respondido el 11 de Septiembre de 14 a las 06:09
8
Usted puede encontrar a nivel mundial módulos instalados por el comando
npm list -g
Le proporcionará la ubicación donde se han instalado los módulos de node.js.
C:\Users\[Username]\AppData\Roaming\npm
Si instala módulos node.js localmente en una carpeta, puede escribir el siguiente comando para ver la ubicación.
npm list
Respondido 30 Oct 17, 04:10
7
Estaba empezando a volverme loco mientras buscaba la configuración real, así que aquí está la lista de todos los archivos de configuración en Linux:
- / etc / npmrc
- /home/suusuario/.npmrc
- /raíz/.npmrc
- ./.npmrc en el directorio actual junto al archivo package.json (gracias a @CyrillePontvieux)
en windows:
- c / Program \ Files / nodejs / node_modules / npm / npmrc
Luego en este archivo se configura el prefijo:
prefix=/usr
El prefijo está predeterminado en / usr en Linux, en $ {APPDATA} \ npm en Windows.
Los módulos de nodo están bajo el árbol $ prefix, y la ruta debe contener $ prefix / bin
Puede haber un problema:
- Cuando instala globalmente, usa "sudo su" y luego el
/root/.npmrc
¡puede ser usado! - Cuando usa localmente sin sudo: para su usuario es el
/home/youruser/.npmrc
. - Cuando tu ruta no representa tu prefijo
- Cuando se utiliza
npm set -g prefix /usr
establece el / etc / npmrc global, pero no anula el local
Aquí está toda la información que faltaba para encontrar qué está configurado y dónde. Espero haber sido exhaustivo.
Respondido el 04 de enero de 21 a las 15:01
/root/.npmrc
nunca debería ser buscado porque sudo
con npm
es una mala práctica incluso si algún tutorial lo menciona. Te olvidaste de mencionar .npmrc
en el directorio junto a package.json
expediente. - Cyrille Pontvieux
4
Desde el documentos:
En npm 1.0, hay dos formas de instalar cosas:
globalmente: esto coloca módulos en
{prefix}/lib/node_modules
y coloca archivos ejecutables en{prefix}/bin
, Donde{prefix}
suele ser algo como/usr/local
. También instala páginas de manual en{prefix}/share/man
, si se suministran.localmente: esto instala su paquete en el directorio de trabajo actual. Los módulos de nodo entran
./node_modules
, los ejecutables entran./node_modules/.bin/
y las páginas de manual no están instaladas en absoluto.
Usted puede obtener su {prefix}
con npm config get prefix
. (Útil cuando instaló el nodo con nvm).
Respondido 02 ago 16, 14:08
4
Windows 10: Cuando corrí npm prefix -g
, Noté que la ubicación de instalación estaba dentro de la ruta del shell de git que usé para instalar. Incluso cuando esa ubicación se agregó a la ruta, no se reconocería el comando del paquete instalado globalmente. Arreglado por:
- correr
npm config edit
- cambiando el prefijo a 'C: \ Users \ username \ AppData \ Roaming \ npm'
- agregando esa ruta a la variable de ruta del sistema
- reinstalar el paquete con -g.
Respondido 17 Oct 18, 22:10
Gracias señor, este era el problema real en el que estaba atrapado - Juram Nawaz
3
Desde el documentos:
Los paquetes se colocan en la carpeta node_modules con el prefijo. Cuando se instala localmente, esto significa que puede requerir ("nombre de paquete") que cargue su módulo principal, o requerir que ("nombre de paquete / lib / ruta / a / sub / módulo") cargue otros módulos.
Las instalaciones globales en sistemas Unix van a {prefix} / lib / node_modules. Las instalaciones globales en Windows van a {prefix} / node_modules (es decir, sin carpeta lib).
Los paquetes con ámbito se instalan de la misma manera, excepto que se agrupan en una subcarpeta de la carpeta correspondiente node_modules con el nombre de ese ámbito como prefijo con el símbolo @, por ejemplo, npm install @ myorg / package colocaría el paquete en {prefix} / node_modules / @ myorg / paquete. Consulte el alcance para obtener más detalles.
Si desea requerir () un paquete, instálelo localmente.
Usted puede obtener su {prefix}
con npm config get prefix
. (Útil cuando instaló el nodo con nvm).
Lean sobre localmente.
Lean sobre a nivel mundial.
Respondido 25 ago 16, 10:08
3
En Ubuntu 14.04 están instalados en
/usr/lib/node_modules
Respondido 13 Feb 19, 09:02
3
Como dicen las otras respuestas, la mejor manera es hacer
npm list -g
Sin embargo, si tiene una gran cantidad de npm
paquetes instalados, la salida de este comando puede ser muy larga y un gran dolor para desplazarse hacia arriba (a veces ni siquiera es posible desplazarse tan atrás).
En este caso, canalice la salida al more
programa, como este
npm list -g | more
Respondido 22 ago 20, 02:08
3
Hacer eco de la configuración:
npm config ls
ornpm config list
Mostrar todas las configuraciones de configuración:
npm config ls -l
ornpm config ls --json
Imprime el efectivo nodo_módulos carpeta:
npm root
ornpm root -g
Imprime el prefijo local:
npm prefix
ornpm prefix -g
(Este es el directorio principal más cercano para contener un package.json o presentar nodo_módulos directorio)
Respondido 13 Oct 20, 14:10
2
Ampliando otras respuestas.
npm list -g
le mostrará la ubicación de los paquetes instalados globalmente.
Si desea generar esa lista en un archivo que luego puede buscar fácilmente en su editor de texto:
npm list -g > ~/Desktop/npmfiles.txt
Respondido 22 ago 20, 02:08
1
Por cierto, npm buscará node_modules en las carpetas principales (hasta la raíz) si no puede encontrarlo en local.
Respondido el 11 de enero de 19 a las 21:01
1
Windows 7, 8 y 10 -% PERFIL DE USUARIO% \ AppData \ Roaming \ npm \ node_modules.
Nota: si se encuentra en algún lugar del tipo de carpeta cd ..
hasta que estés en C:
directorio. Luego, escriba cd %USERPROFILE%\AppData\Roaming\npm\node_modules
. Y, mágicamente %USERPROFILE%
se convertirá en Users\YourUserProfile\
. Solo quería aclarar las ideas referidas por Decko
en primera respuesta. npm list -g
enumerará todos los bits que tiene instalados globalmente. Si necesita encontrar su proyecto relacionado npm package
luego cd 'your angular project xyz'
, entonces corre npm list
. Mostrará una lista de módulos en npm package
. También le dará una lista de dependencies
falta, y es posible que necesite ejecutar ese proyecto de manera efectiva.
Respondido 13 Feb 19, 21:02
1
Si está intentando acceder a su directorio global desde el código, puede retroceder desde process.execPath
. Por ejemplo, para encontrar wsproxy
, Qué esta en {NODE_GLOBAL_DIR}/bin/wsproxy
, tu puedes sólo:
path.join(path.dirname(process.execPath), 'wsproxy')
También está cómo npm
cli trabaja @ ec9fcc1
/lib/npm.js#L254 con:
path.resolve(process.execPath, '..', '..')
Vea también ec9fcc1
/lib/install.js#L521:
var globalPackage = path.resolve(npm.globalPrefix,
'lib', 'node_modules', moduleName(pkg))
Dónde globalPrefix
tiene un conjunto predeterminado en ec9fcc1
/lib/config/defaults.js#L92-L105 de:
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)
}
}
Respondido el 09 de Septiembre de 19 a las 10:09
¿Cómo debería funcionar esto? Por ejemplo, el binario de nodo está en /usr/bin/node
, pero obviamente (ya que este es el contenedor) los módulos no están ahí; en su lugar están en /usr/lib/node_modules
. - Florian Rappl
Actualizado con referencia a npm
implementación - AT
Ahora bien, esta es una historia diferente; usted trae la plataforma (buena) y las respectivas variables env (a pesar de no mencionar qué funciones importantes como moduleName están haciendo, pero supongo que el lector promedio podrá inferir). ¡Gracias por la modificación / corrección! - Florian Rappl
1
Si tiene Visual Studio instalado, encontrará que viene con su propia copia del nodo separada de la que está en la ruta cuando instaló el nodo usted mismo: el mío está en C: \ Archivos de programa (x86) \ Microsoft Visual Studio \ 2019 \ Community \ MSBuild \ Microsoft \ VisualStudio \ NodeJs.
Si ejecuta el comando npm desde dentro de este directorio, descubrirá qué módulos de nodo están instalados dentro de Visual Studio.
Respondido 22 Oct 19, 10:10
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas javascript node.js location npm or haz tu propia pregunta.
en linux mint es
$HOME/.npm-global/lib/node_modules
- SynxmaxPara que todos lo sepan, instalar sin
-g
La opción instalará un módulo en su directorio de trabajo, por ejemplo, si hace que un directorio diga~/Desktop/tmp
luegocd ~/Desktop/tmp
entonces hazlonpm install appium
entonces hazlols
veránode_modules package-lock.json
porque ha instalado un módulo de nodoappium
para ustedworking directory
... super confuso porque-g
debe ser esencialmente eldefault
pero no es. - the_prole@the_prole - gracias, eso fue increíblemente útil. - Fattie
@the_prole de acuerdo. comportamiento predeterminado ficticio definitivamente ... gracias por la propina. - Harvey
npm config get prefix
(stackoverflow.com/a/32159233/2361131) - gawkface