1277

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

4

23 回答 23

1416

全球图书馆

您可以运行npm list -g以查看安装了哪些全局库以及它们的位置。用于npm list -g | head -1仅显示路径的截断输出。如果您只想显示主包而不是与它一起安装的子包 - 您可以使用 -npm list --depth=0这将显示所有包并仅获取全局安装的包,只需添加 -g ie npm list -g --depth=0

在 Unix 系统上,它们通常放置在全局中/usr/local/lib/node/usr/local/lib/node_modules在全局安装时。如果将NODE_PATH环境变量设置为此路径,则可以通过节点找到模块。

Windows XP - %USERPROFILE%\AppData\npm\node_modules
Windows 7、8 和 10 -%USERPROFILE%\AppData\Roaming\npm\node_modules

非全局库

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

您可以运行npm list以查看为您当前位置安装的非全局库。

安装时使用 -g 选项全局安装

npm install -g pm2- pm2 将被全局安装。然后通常会在/usr/local/lib/node_modulesnpm root -g用于检查位置)中找到它。

npm install pm2- pm2 将安装在本地。然后它通常会在本地目录中找到/node_modules

于 2011-05-08T09:47:01.077 回答
678

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

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

例子:

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

请参阅文档。

于 2014-06-18T21:31:31.497 回答
110

对于全局安装的模块:

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

当您使用 安装全局模块时npm install -g something,npm 会查找一个配置变量prefix以了解该模块的安装位置。

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

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

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

当你使用一些工具比如nodist时,它们会改变全局 npm 模块的平台默认安装路径。

于 2014-12-04T15:50:42.590 回答
72

在windows上我曾经npm list -g找到它。默认情况下,我的(全局)包被安装到C:\Users\[Username]\AppData\Roaming\npm.

于 2014-03-25T10:59:30.473 回答
27

如果你正在寻找 npm 安装的可执行文件,可能是因为你想把它放在你的 PATH 中,你可以简单地做

npm bin

或者

npm bin -g
于 2018-01-02T21:43:30.397 回答
21

-g如果使用全局 ( ) 标志安装了模块,则可以通过运行以下命令获取父位置:

npm get prefix

或者

npm ls -g --depth=0

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

于 2016-08-24T14:19:16.627 回答
21

不是直接回答,但可能会有所帮助....

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

于 2017-05-20T09:45:34.620 回答
19

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

更多信息可以在https://github.com/isaacs/npm/blob/master/doc/install.md找到

于 2011-05-08T16:30:49.683 回答
18

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

npm list -g --depth 0
于 2019-03-14T18:00:58.127 回答
15

最简单的方法是

npm 列表 -g

列出软件包并查看其安装位置。

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

C:\MyProgramData\chocolatey\lib\nodejs.commandline.0.10.31\tools\node_modules

C:\MyProgramData\ 是巧克力回购位置。

于 2014-09-11T05:28:21.670 回答
9

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

npm list -g

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

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

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

npm list
于 2017-10-30T04:42:32.870 回答
8

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

npm list -g

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

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

npm list -g | more
于 2016-05-11T22:48:41.820 回答
8

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

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

在窗户上:

  • c/程序\文件/nodejs/node_modules/npm/npmrc

然后在此文件中配置前缀:

prefix=/usr

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

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

可能有问题:

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

这是查找在何处配置的内容所缺少的所有信息。希望我已经详尽无遗。

于 2019-11-05T15:51:10.790 回答
6

扩展其他答案。

npm list -g

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

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

npm list -g > ~/Desktop/npmfiles.txt
于 2019-02-27T19:30:03.613 回答
6
  • 回显配置:npm config lsnpm config list

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

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

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

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


于 2020-10-13T13:40:38.020 回答
4

文档

在 npm 1.0 中,有两种安装方式:

  • 全局 - 这会将模块放入{prefix}/lib/node_modules,并将可执行文件放入{prefix}/bin其中{prefix},通常类似于/usr/local. {prefix}/share/man如果提供了手册页,它还会在 中安装手册页 。

  • 本地 ---- 这会将您的包安装在当前工作目录中。节点模块进入./node_modules,可执行文件进入 ./node_modules/.bin/,并且根本没有安装手册页。

你可以得到你{prefix}npm config get prefix。(当您使用 nvm 安装节点时很有用)。

于 2016-08-02T13:35:10.983 回答
4

Windows 10:当我运行npm prefix -g时,我注意到安装位置在我用来安装的 git shell 路径内。即使将该位置添加到路径中,来自全局安装包的命令也不会被识别。修复者:

  1. 跑步npm config edit
  2. 将前缀更改为 'C:\Users\username\AppData\Roaming\npm'
  3. 将该路径添加到系统路径变量
  4. 使用 -g 重新安装软件包。
于 2018-10-17T21:22:57.623 回答
3

在 Ubuntu 14.04 中,它们安装在

/usr/lib/node_modules

于 2016-07-03T20:16:39.630 回答
3

文档

包被放入前缀下的 node_modules 文件夹中。在本地安装时,这意味着您可以 require("packagename") 加载其主模块,或者 require("packagename/lib/path/to/sub/module") 加载其他模块。

Unix 系统上的全局安装转到 {prefix}/lib/node_modules。Windows 上的全局安装转到 {prefix}/node_modules (即没有 lib 文件夹。)

作用域包的安装方式相同,除了它们被组合在相关 node_modules 文件夹的子文件夹中,该作用域的名称由 @ 符号前缀,例如 npm install @myorg/package 会将包放在 {prefix} /node_modules/@myorg/package. 有关更多详细信息,请参见范围。

如果你想 require() 一个包,那么在本地安装它。

你可以得到你{prefix}npm config get prefix。(当您使用 nvm 安装节点时很有用)。

在本地阅读。在全球范围内
阅读。

于 2016-08-25T09:54:42.907 回答
1

如果您尝试从代码访问全局目录,则可以从process.execPath. 例如,要查找wsproxy位于 中的{NODE_GLOBAL_DIR}/bin/wsproxy,您可以:

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

还有npmcli 的工作方式@ ec9fcc1/lib/npm.js#L254与:

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

另请参阅ec9fcc1/lib/install.js#L521

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

/lib/config/defaults.js#L92-L105中globalPrefix的默认设置ec9fcc1

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)
    }
}
于 2018-09-10T14:24:19.333 回答
1

顺便说一句,如果在本地找不到,npm 将在父文件夹(直到非常根目录)中查找 node_modules。

于 2019-01-11T21:56:43.113 回答
1

Windows 7、8 和 10 - %USERPROFILE%\AppData\Roaming\npm\node_modules。

注意:如果您在文件夹类型中的某个位置,cd ..直到您在C:目录中。然后,键入cd %USERPROFILE%\AppData\Roaming\npm\node_modules。并且,会神奇地%USERPROFILE%变成Users\YourUserProfile\. 我只是想澄清Decko在第一反应中提到的想法。npm list -g将列出您全局安装的所有位。如果你需要找到你的项目相关的npm packagecd 'your angular project xyz',然后运行npm list。它将显示模块列表npm package。它还会为您提供dependencies缺失的列表,您可能需要有效地运行该项目。

于 2019-02-13T21:21:04.840 回答
1

如果您安装了 Visual Studio,您会发现它带有自己的节点副本,与您自己安装节点时路径上的副本不同 - 我的位于 C:\Program Files (x86)\Microsoft Visual Studio\2019 \Community\MSBuild\Microsoft\VisualStudio\NodeJs。

如果你从这个目录中运行 npm 命令,你会发现 Visual Studio 中安装了哪些节点模块。

于 2019-10-22T09:47:40.057 回答