¿Dónde instala npm los paquetes?

1188

¿Alguien puede decirme dónde puedo encontrar los módulos Node.js, que instalé usando npm?

6
  • 3
    en linux mint es $HOME/.npm-global/lib/node_modules
    Synxmax
    16 de agosto de 2016 a las 5:28
  • 29
    Sólo para que todo el mundo sabe, la instalación y sin -gopción de instalar un módulo para que el directorio de trabajo por ejemplo, si haces un directorio decir ~/Desktop/tmpentonces cd ~/Desktop/tmpEntonces, ¿ npm install appiumentonces qué lsverá node_modules package-lock.jsonporque se ha instalado un módulo de nodo appiuma su working directory... super confuso porque -gen esencia debería ser el defaultpero no es. 7 de mayo de 2019 a las 2:54
  • 4
    @the_prole - gracias, eso fue increíblemente útil .
    Fattie
    7/09/19 a las 13:05
  • @the_prole de acuerdo. comportamiento predeterminado ficticio definitivamente ... gracias por la propina.
    Harvey
    29/07/20 a las 15:28
  • 5
    npm config get prefix( stackoverflow.com/a/32159233/2361131 ) 22 feb a las 9:28
1352

Bibliotecas globales

Puede ejecutar npm list -gpara ver qué bibliotecas globales están instaladas y dónde se encuentran. Úselo npm list -g | head -1para una salida truncada que muestre solo la ruta. Si desea mostrar solo los paquetes principales, no sus subpaquetes que se instalan junto con él, puede usarlo, npm list --depth=0que mostrará todos los paquetes y para obtener solo los paquetes instalados globalmente, simplemente agregue -g es decir npm list -g --depth=0.

En los sistemas Unix, normalmente se colocan en /usr/local/lib/nodeo /usr/local/lib/node_modulescuando se instalan globalmente. Si establece la NODE_PATHvariable de entorno en 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 en la node_modulessubcarpeta de la carpeta en la que se encuentra actualmente.

Puede ejecutar npm listpara 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. Por lo general, se encontrará en /usr/local/lib/node_modules(Use npm root -gpara verificar dónde).

npm install pm2- pm2 se instalará localmente. Por lo general, se encontrará en el directorio local en/node_modules

11
  • 32
    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 manera es usarlo npm list -gcomo se sugiere en otra respuesta. 7 de nov. De 2014 a las 19:05
  • 76
    no me funciona, solo muestra la carpeta bin. "npm root -g" funciona. 19 de septiembre de 2015 a las 13:24
  • 7
    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: [email protected] / usr / lib / node_modules / npm
    Gregor
    2 feb 2016 a las 13:48
  • 22
    para windows 10, colocado en %USERPROFILE%\AppData\Roaming\npm\node_modules 23/10/2016 a las 11:43
  • 12
    "npm root -g" es correcto - la lista podría funcionar pero es demasiada información, mientras que el otro comando simplemente le da la ubicación exacta que está buscando. stackoverflow.com/a/24295332/174965 13/02/2017 a las 15:36
649

El comando npm rootle 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 rootle indicará el directorio de instalación local. npm root -gmostrará la raíz de instalación global independientemente del directorio de trabajo actual.

Ejemplo:

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

Consulte la documentación.

4
  • 1
    +1 en esta respuesta (al menos bajo Linux Mint 17 Qianna y npm 3.9.5). Mi node_modulescarpeta global está en /usr/local/lib/node_modules. Cuando lo hago, es decir sudo npm uninstall browserify -g(suponiendo que lo haya hecho sudo npm install browserify -gantes), lo quita de allí.
    nik_m
    1 de julio de 2016 a las 4:41
  • 11
    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. 31/0317 a las 22:12
  • 2
    La raíz predeterminada en el sistema operativo Windows es C: \ Users \ YOUR_USER_NAME \ AppData \ Roaming \ npm \ node_modules 26/03/18 a las 16:04
  • 4
    Para MacOS Mojave 10.14.5 también es /usr/local/lib/node_modules
    Jim Aho
    14/06/19 a las 15:14
101

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 prefixpara 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 0para no mostrar sus dependencias).

Si desea cambiar la ruta de los módulos globales, use npm config edity coloque prefix = /my/npm/global/modules/prefixel archivo o use npm config set prefix /my/npm/global/modules/prefix.

Cuando usa algunas herramientas como nodist , cambian la ruta de instalación predeterminada de la plataforma de los módulos npm globales.

1
  • 3
    Respondió 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}.
    HeyZiko
    3 oct 2016 a las 20:22
69

En Windows solía npm list -gaveriguarlo. De forma predeterminada, mis paquetes (globales) se estaban instalando en C:\Users\[Username]\AppData\Roaming\npm.

1
  • 10
    Solo para su información: este es el% appdata% \ npm del usuario en ejecución
    Felix
    14 de enero de 2016 a las 9:35
24

Si está buscando el ejecutable que npm instaló, tal vez porque le gustaría ponerlo en su RUTA, simplemente puede hacer

npm bin

o

npm bin -g
1
  • 1
    Si ha instalado globalmente paquetes npm donde el nodo se instaló con homebrew y luego npm se actualizó con el propio npm, es posible que obtenga command not founderrores. Si es así, agregue lo anterior a su RUTA: export PATH=$PATH:$(npm bin -g)voila 5/11/18 a las 11:20
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.

Puede encontrar más información en https://github.com/isaacs/npm/blob/master/doc/install.md

3
  • 4
    Algo a tener en cuenta: con 1.0, los módulos se almacenan en / usr / local / lib / node_modules. 13 de mayo de 2011 a las 1:23
  • @EricSmith, tu enlace también está roto 30 sep 2019 a las 9:50
  • El enlace en la respuesta está muerto: "404 | Página no encontrada" .
    Pang
    22/08/20 a las 1:50
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-cacheen Windows).

Los módulos npm se descargan primero aquí y luego se copian en la carpeta global npm ( %AppData%/Roaming/npmen Windows) o en la 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

0
17

Para obtener una lista compacta sin dependencias, simplemente use

npm list -g --depth 0
17

Si se instaló un módulo con el -gindicador global ( ), puede obtener la ubicación principal ejecutando:

npm get prefix

o

npm ls -g --depth=0

que imprimirá la ubicación junto con la lista de módulos instalados.

14

La forma más fácil sería hacer

npm list -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 una ubicación de repositorio de chocolate.

8

Puede encontrar módulos instalados globalmente mediante 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
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/youruser/.npmrc
  • /root/.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 se instala globalmente, se usa "sudo su", ¡entonces /root/.npmrcse puede usar!
  • Cuando usa localmente sin sudo: para su usuario es el /home/youruser/.npmrc.
  • Cuando tu camino no representa tu prefijo
  • Cuando lo usa 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.

1
  • 1
    /root/.npmrcNunca se debe buscar porque sudocon npmes una mala práctica incluso si algún tutorial lo menciona. Olvidó mencionar .npmrcen el directorio al lado del package.jsonarchivo. 28 oct.20 a las 20:43
4

De los documentos :

In npm 1.0, there are two ways to install things:

  • globally —- This drops modules in {prefix}/lib/node_modules, and puts executable files in {prefix}/bin, where {prefix} is usually something like /usr/local. It also installs man pages in {prefix}/share/man, if they’re supplied.

  • locally —- This installs your package in the current working directory. Node modules go in ./node_modules, executables go in ./node_modules/.bin/, and man pages aren’t installed at all.

Puedes conseguir tu {prefix}con npm config get prefix. (Útil cuando instaló el nodo con nvm).

4

Windows 10 : cuando ejecuténpm prefix -g, noté que la ubicación de instalación estaba dentro de la ruta de git shell que solía instalar. Incluso cuando esa ubicación se agregó a la ruta, no se reconocería el comando del paquete instalado globalmente. Arreglado por:

  1. corriendo npm config edit
  2. cambiando el prefijo a 'C: \ Users \ username \ AppData \ Roaming \ npm'
  3. agregando esa ruta a la variable de ruta del sistema
  4. reinstalar el paquete con -g.
1
  • Gracias señor, este era el verdadero problema en el que estaba atrapado 9 de agosto de 2020 a las 7:59
4
  • Hacer eco de la configuración: npm config lsonpm config list

  • Mostrar todos los ajustes de configuración: npm config ls -lonpm config ls --json

  • Imprima la carpeta node_modules efectiva : npm rootonpm root -g

  • Imprima el prefijo local: npm prefixonpm prefix -g

    (Este es el directorio principal más cercano para contener un archivo package.json o directorio node_modules )


3

De los documentos :

Packages are dropped into the node_modules folder under the prefix. When installing locally, this means that you can require("packagename") to load its main module, or require("packagename/lib/path/to/sub/module") to load other modules.

Global installs on Unix systems go to {prefix}/lib/node_modules. Global installs on Windows go to {prefix}/node_modules (that is, no lib folder.)

Scoped packages are installed the same way, except they are grouped together in a sub-folder of the relevant node_modules folder with the name of that scope prefix by the @ symbol, e.g. npm install @myorg/package would place the package in {prefix}/node_modules/@myorg/package. See scope for more details.

If you wish to require() a package, then install it locally.

Puedes conseguir tu {prefix}con npm config get prefix. (Útil cuando instaló el nodo con nvm).

Lea sobre localmente .
Leer sobre globalmente .

3

En Ubuntu 14.04 están instalados en

/usr/lib/node_modules

3

Como dicen las otras respuestas, la mejor manera es hacer

npm list -g

Sin embargo, si tiene una gran cantidad de npmpaquetes instalados, la salida de este comando podría ser muy larga y un gran problema para desplazarse hacia arriba (a veces ni siquiera es posible desplazarse tan atrás).

En este caso, canalice la salida al moreprograma, así

npm list -g | more
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
1

Por cierto, npm buscará node_modules en las carpetas principales (hasta la raíz) si no puede encontrarlo en local.

1

Windows 7, 8 y 10 -% PERFIL DE USUARIO% \ AppData \ Roaming \ npm \ node_modules.

Nota: Si se encuentra en algún lugar de la carpeta, escriba cd ..hasta que esté en el 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 mencionadas Deckoen la primera respuesta. npm list -genumerará todos los bits que tiene instalados globalmente. Si usted necesita encontrar su proyecto relacionado npm packagea continuación cd 'your angular project xyz', vuelva a ejecutar npm list. Mostrará una lista de módulos en formato npm package. También le dará una lista de los que dependenciesfaltan, y es posible que necesite ejecutar ese proyecto de manera efectiva.

1

Si está intentando acceder a su directorio global desde el código, puede retroceder desde process.execPath. Por ejemplo, para buscar wsproxy, que está en {NODE_GLOBAL_DIR}/bin/wsproxy, puede simplemente:

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

También está cómo funciona el npmcli @ ec9fcc1/lib/npm.js#L254 con:

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

Consulte también ec9fcc1/lib/install.js#L521 :

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

Donde globalPrefixtiene 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)
    }
}
3
  • ¿Cómo debería funcionar esto? Por ejemplo, el binario de Node está en /usr/bin/node, pero obviamente (ya que este es el contenedor) los módulos no están allí; en su lugar están en /usr/lib/node_modules. 8 de septiembre de 2019 a las 3:49
  • Actualizado con referencia a la npmimplementación
    A T
    9 de septiembre de 2019 a las 9:08
  • Ahora bien, esta es una historia diferente; traes 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! 14 de septiembre de 2019 a las 6:21
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.