有人能告诉我在哪里可以找到我使用npm
安装的Node.js模块吗?
您可以运行npm list -g
以查看安装了哪些全局库以及它们位于何处。使用npm list -g | head -n 1
显示仅显示路径的截断输出。
在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
以查看当前位置的已安装非全局库。
最简单的方法就是做
asl letter -g
列出包并查看其安装位置。
我通过chololatey安装了npm,所以位置是
C:\ MyProgramData \的巧克力\ LIB \ nodejs.commandline.0.10.31 \工具\ node_modules
C:\ MyProgramData \是巧克力回购地点。
要获得没有依赖关系的紧凑列表,只需使用
npm list -g --depth 0
您可以通过该命令查找全局安装的模块
npm list -g
它将为您提供已安装node.js模块的位置。
C:\Users\[Username]\AppData\Roaming\npm
如果在文件夹中本地安装node.js模块,则可以键入以下命令以查看位置。
npm list
来自docs:
在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安装节点时很有用)。
来自docs:
包被放入前缀下的node_modules文件夹中。在本地安装时,这意味着您可以要求(“packagename”)加载其主模块,或者要求(“packagename / lib / path / to / sub / module”)加载其他模块。
Unix系统上的全局安装转到{prefix} / lib / node_modules。 Windows上的全局安装转到{prefix} / node_modules(即没有lib文件夹。)
Scoped软件包以相同的方式安装,除了它们在相关node_modules文件夹的子文件夹中组合在一起,其中@范围前缀的名称由@符号组成,例如npm install @ myorg / package会将包放在{prefix} / node_modules / @ myorg / package中。有关详细信息,请参阅范围
如果您想要()一个包,那么在本地安装它。
你可以用{prefix}
获得你的npm config get prefix
。 (在使用nvm安装节点时很有用)。
正如其他答案所说,最好的方法是做
npm list -g
但是,如果你安装了大量的npm
软件包,那么这个命令的输出可能会非常长并且向上滚动会很麻烦(有时候甚至无法向后滚动)。
在这种情况下,将管道输出到more
程序,就像这样
npm list -g | more
在Ubuntu 14.04中,它们安装在
/usr/lib/node_modules
扩展其他答案 -
npm list -g
将显示全局安装的软件包的位置。
如果要将该列表输出到文件,则可以在文本编辑器中轻松搜索:
npm list -g > ~/Desktop/npmfiles.txt
如果您尝试从代码访问全局目录,则可以从process.execPath
回溯。例如,要查找wsproxy
中的{NODE_GLOBAL_DIR}/bin/wsproxy
,您可以:
path.join(path.dirname(process.execPath), 'wsproxy')
Windows 10:当我运行npm prefix -g
时,我注意到安装位置位于我以前安装的git shell路径中。即使将该位置添加到路径中,也无法识别来自全局安装的包的命令。修正:
npm config edit
命令npm root
将告诉您npm包的有效安装目录。
如果当前工作目录是节点包或节点包的子目录,npm root
将告诉您本地安装目录。无论当前工作目录如何,npm root -g
都将显示全局安装根目录。
顺便说一句,如果在本地找不到,npm会在父文件夹中查找node_modules(最多为root)。
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 package
然后cd 'your angular project xyz'
,然后运行npm list
。它将显示npm package
中的模块列表。它还会为您提供缺少的dependencies
列表,您可能需要有效地运行该项目。
使用npm root -g
命令查找全局npm
路径。
$ npm root -g
/usr/local/lib/node_modules
其他答案为您提供特定于平台的响应,但通用的是:
使用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
放入文件中或使用npm config set prefix /my/npm/global/modules/prefix
。
当您使用nodist等工具时,它们会更改全局npm模块的平台默认安装路径。
在Windows上我使用npm list -g
找到它。默认情况下,我的(全局)包正在安装到C:\Users\[Username]\AppData\Roaming\npm
。
在早期版本的NPM模块中,始终放在/ usr / local / lib / node中,或者在.npmrc文件中指定npm根目录的任何位置。但是,在NPM 1.0+模块中安装了两个地方。您可以在/.node_modules中为应用程序本地安装模块,也可以在全局安装它们,这将使用上述内容。
更多信息可以在https://github.com/isaacs/npm/blob/master/doc/install.md找到
如果您正在寻找安装了npm的可执行文件,可能是因为您想将它放在PATH中,您可以这样做
npm bin
要么
npm bin -g
如果模块安装了全局(-g
)标志,则可以通过运行以下命令获取父位置
npm get prefix
要么
npm ls -g --depth=0
它将打印位置以及已安装模块的列表
干杯:-)
不直接回答但可能有帮助....
npm还有一个缓存文件夹,可以通过运行npm config get cache
(Windows上的%AppData%/npm-cache
)找到。
npm模块首先在此处下载,然后复制到npm全局文件夹(Windows上的%AppData%/npm/Roaming
)或项目特定文件夹(your-project/node_modules
)。
因此,如果你想跟踪npm包,以及一些如何,所有下载的npm包的列表(如果未清除npm缓存)看看这个文件夹。文件夹结构如{cache}/{name}/{version}