npm安装包在哪里?

Tro*_*nic 867 javascript location node.js npm

有人能告诉我在哪里可以找到我安装的Node.js模块npm吗?

Dec*_*cko 1036

全球图书馆

您可以运行npm list -g以查看安装全局库的位置.

在Unix系统上,它们通常放在全局安装npm list -g | head -1npm list --depth=0安装时.如果将npm list -g --depth=0环境变量设置为此路径,则可以按节点找到模块.

Windows XP - /usr/local/lib/node
Windows 7,8和10 -/usr/local/lib/node_modules

非全球图书馆

非全局库安装在NODE_PATH您当前所在文件夹中的子文件夹中.

您可以运行%USERPROFILE%\AppData\npm\node_modules以查看当前位置的已安装非全局库.

  • 对我不起作用,只显示bin文件夹."npm root -g"确实有效. (72认同)
  • 如果您正在使用nvm,那么您的全局模块可能位于多个位置之一,具体取决于您当时使用的节点版本.最好的方法是使用另一个答案中建议的`npm list -g`. (24认同)
  • 对于Windows 10,放在`%USERPROFILE%\ AppData\Roaming \npm \node_modules`中 (20认同)
  • "npm root -g"是正确的 - 列表可能有效,但信息太多,而其他命令只是为您提供了您正在寻找的确切位置.http://stackoverflow.com/a/24295332/174965 (11认同)
  • 在Arch linux下,全局模块位于/ usr/lib下."npm --help"显示输出最后一行的确切位置,例如:npm@3.6.0/usr/lib/node_modules/npm (7认同)
  • 这对于非全局模块不正确.非全局模块未安装在./node_modules中,而是安装在当前目录或父目录中的"适当"node_modules目录中,基于"node_modules"或"package.json"的存在.结果是,这可能会成为当前目录上方的几个目录.请参阅https://docs.npmjs.com/files/folders下的"更多信息". (3认同)
  • `npm root` 本身是没有意义的。如果你的工作目录中有一个 `node_modules`,它会显示它——*就像*`ls`。始终使用 `npm root -g` (2认同)
  • 对于 XP 和 Vista、7、8、10 `%APPDATA%\npm\node_modules` 都指向正确的文件夹。“%APPDATA%”在 XP 中等于“C:\Documents and Settings\{username}\Application Data”,在 Vista 到 10 中等于“C:\Users\{username}\AppData\Roaming”。 (2认同)

Joe*_*ins 544

该命令npm root将告诉您npm包的有效安装目录.

如果当前工作目录是节点包或节点包的子目录,npm root则会告诉您本地安装目录.npm root -g无论当前工作目录如何,都将显示全局安装根目录.

请参阅文档.

  • 这是一个更有用的答案,因为输出适合于编写更大的命令而无需从一堆输出中提取路径. (9认同)
  • 对于 MacOS Mojave 10.14.5,它也是 `/usr/local/lib/node_modules` (4认同)
  • Windows 操作系统上的默认根目录是 C:\Users\YOUR_USER_NAME\AppData\Roaming\npm\node_modules (2认同)

Rav*_*avi 200

使用该 npm root -g命令查找全局npm路径.

例:

$ npm root -g
/usr/local/lib/node_modules
Run Code Online (Sandbox Code Playgroud)


jak*_*b.g 85

对于全局安装的模块:

其他答案为您提供特定于平台的响应,但通用的是:

使用时安装全局模块npm install -g something,npm查找配置变量prefix以了解安装模块的位置.

您可以通过运行获得该值 npm config get prefix

要显示该文件夹中可用的所有全局模块,请使用npm ls -g --depth 0(depth 0不显示其依赖项).

如果要更改全局模块路径,请使用npm config edit并放入prefix = /my/npm/global/modules/prefix文件.

当您使用某些工具(如nodist)时,它们会更改全局npm模块的平台默认安装路径.

  • 您回答了我的后续问题:“有人能告诉我如何*更改*Node.js 模块的位置吗?” _注意:这对我很重要的原因是我不必再次更改我的 PATH。我在 {npm config get prefx} 打开的 npmrc 文件中取消了默认建议的注释。_ (3认同)

9sw*_*mpy 64

在Windows上,我常常npm list -g找到它.默认情况下,我的(全局)软件包正在安装到C:\Users\[Username]\AppData\Roaming\npm.

  • 仅供参考 - 这是执行用户的%appdata%\npm (9认同)

Ken*_*dge 18

如果您正在寻找安装了npm的可执行文件,可能是因为您想将它放在PATH中,您可以这样做

npm bin
Run Code Online (Sandbox Code Playgroud)

要么

npm bin -g
Run Code Online (Sandbox Code Playgroud)

  • 自 [v9.0.0](https://github.com/npm/cli/releases/tag/v9.0.0) 起,`npm bin` 已被删除 (6认同)
  • 如果您全局安装了 npm 软件包,其中 Node 是通过自制程序安装的,然后使用 npm 本身更新了 npm,则可能会收到“命令未找到”错误。如果是这样,请将上述内容添加到您的 PATH 中: `export PATH=$PATH:$(npm bin -g)` 瞧 (3认同)

Nic*_*ell 17

在早期版本的NPM模块中,始终放在/ usr/local/lib/node中,或者在.npmrc文件中指定npm根目录的任何位置.但是,在NPM 1.0+模块中安装了两个地方.您可以在/.node_modules中为应用程序本地安装模块,也可以在全局安装它们,这将使用上述内容.

有关更多信息,访问https://github.com/isaacs/npm/blob/master/doc/install.md

  • 需要注意的事项 - 1.0模块存储在/ usr/local/lib/node_modules中. (4认同)

Rap*_*phi 17

正如其他答案所说,最好的方法是

npm list -g
Run Code Online (Sandbox Code Playgroud)

但是,如果安装了大量npm软件包,则此命令的输出可能会很长,并且向上滚动会很困难(有时甚至不可能向后滚动那么远)。

在这种情况下,将输出通过管道传输到程序more,如下所示

npm list -g | more
Run Code Online (Sandbox Code Playgroud)


山茶树*_*葡萄树 15

  • 回显配置:npm config lsnpm config list

  • 显示所有配置设置:npm config ls -lnpm config ls --json

  • 打印有效的node_modules文件夹:npm root或者npm root -g

  • 打印本地前缀:npm prefixnpm prefix -g

    (这是包含package.json文件或node_modules目录的最近父目录)



Ali*_*ahi 14

不直接回答但可能有帮助....

npm还有一个缓存文件夹,可以通过运行npm config get cache(%AppData%/npm-cache在Windows上)找到.

npm模块首先在此处下载,然后复制到npm全局文件夹(%AppData%/Roaming/npm在Windows上)或项目特定文件夹(your-project/node_modules).

因此,如果你想跟踪npm包,以及一些如何,所有下载的npm包的列表(如果未清除npm缓存)看看这个文件夹.文件夹结构如下{cache}/{name}/{version}

这可能也有助于https://docs.npmjs.com/cli/cache


dhe*_*ran 13

如果module安装了global(-g)标志,则可以通过运行以下命令获取父位置

npm get prefix
Run Code Online (Sandbox Code Playgroud)

要么

npm ls -g --depth=0
Run Code Online (Sandbox Code Playgroud)

它将打印位置以及已安装模块的列表

干杯:-)


Tha*_*aka 12

最简单的方法就是做

npm list -g

列出包并查看其安装位置.

我通过chololatey安装了npm,所以位置是

C:\ MyProgramData \的巧克力\ LIB \nodejs.commandline.0.10.31 \工具\node_modules

C:\ MyProgramData \是巧克力回购地点.


Ada*_*ela 11

要获得没有依赖性的紧凑列表,只需使用

npm list -g --depth 0
Run Code Online (Sandbox Code Playgroud)


TWL*_*ATL 9

扩展其他答案。

npm list -g
Run Code Online (Sandbox Code Playgroud)

将显示全局安装的软件包的位置。

如果您想将该列表输出到一个文件,然后可以在文本编辑器中轻松搜索:

npm list -g > ~/Desktop/npmfiles.txt
Run Code Online (Sandbox Code Playgroud)


pde*_*dem 7

我在搜索真正的配置时开始发疯,所以这里是 linux 上所有配置文件的列表:

  • /etc/npmrc
  • /home/你的用户/.npmrc
  • /root/.npmrc
  • ./.npmrc 在 package.json 文件旁边的当前目录中(感谢@CyrillePontvieux)

在窗户上:

  • c/Program\ Files/nodejs/node_modules/npm/npmrc

然后在这个文件中配置前缀:

prefix=/usr
Run Code Online (Sandbox Code Playgroud)

前缀在linux中默认为/usr,在windows中默认为${APPDATA}\npm

节点模块在 $prefix 树下,路径应该包含 $prefix/bin

可能有问题:

  • 当您全局安装时,您使用“sudo su”然后/root/.npmrc可以使用!
  • 当您在没有 sudo 的情况下在本地使用时:对于您的用户,它的/home/youruser/.npmrc.
  • 当您的路径不代表您的前缀时
  • 当您使用npm set -g prefix /usr它时,它会设置 /etc/npmrc 全局,但不会覆盖本地

以下是查找配置位置所缺少的所有信息。希望我已经详尽无遗。


Abd*_*kir 6

您可以通过该命令查找全局安装的模块

npm list -g
Run Code Online (Sandbox Code Playgroud)

它将为您提供已安装node.js模块的位置.

C:\Users\[Username]\AppData\Roaming\npm
Run Code Online (Sandbox Code Playgroud)

如果在文件夹中本地安装node.js模块,则可以键入以下命令以查看位置.

npm list
Run Code Online (Sandbox Code Playgroud)