请问我安装使用 npm
安装的 Node.js 模块文件在哪里可以找到?
您可以运行npm list -g
以查看已安装的全局库及其位置。使用 npm list -g | head -1
以获取截断的输出,仅显示路径。如果要仅显示主包而不是随之安装的子包-您可以使用- npm list --depth=0
,它将显示所有包,要获取仅全局安装的包,请添加-g,即 npm list -g --depth=0
。
在Unix系统上,它们通常位于全局安装时的/usr/local/lib/node
或/usr/local/lib/node_modules
中。 如果将NODE_PATH
环境变量设置为此路径,则Node可以找到这些模块。
Windows XP- %USERPROFILE%\AppData\npm\node_modules
Windows 7、8和10- %USERPROFILE%\AppData\Roaming\npm\node_modules
非全局库安装在当前文件夹下的node_modules
子文件夹中。
您可以运行npm list
以查看当前位置的已安装非全局库。
npm install -g pm2
- pm2将被全局安装。然后,通常可以在/usr/local/lib/node_modules
中找到它(使用npm root -g
检查位置)。
npm install pm2
- pm2将被本地安装。然后,通常可以在/node_modules
的本地目录中找到它。
%USERPROFILE%\AppData\Roaming\npm\node_modules
。 - Nirmal Goswami使用命令npm root
可以告诉您npm软件包的有效安装目录。
如果您的当前工作目录是一个node软件包或node软件包的子目录,npm root
会告诉您本地安装目录。npm root -g
将显示全局安装根目录,而不管当前工作目录。
$ npm root -g
/usr/local/lib/node_modules
nvm
的话会非常有帮助,因为你可以在每个节点版本上有多个位置,例如 ~/.nvm/versions/node/v14.20.0/lib/node_modules
。 - joematunenvm
,会非常有帮助,因为您可能会有多个位置对应每个节点版本,例如 ~/.nvm/versions/node/v14.20.0/lib/node_modules
- undefined其他答案可能会给出特定平台的回答,但是一般性的回答如下:
当您使用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模块的默认安装路径。
npm list -g
来查找它。默认情况下,我的(全局)软件包被安装在C:\Users\[用户名]\AppData\Roaming\npm
目录下。如果您正在寻找npm安装的可执行文件,可能是因为您想将其放入PATH中,那么您可以简单地执行以下操作:
npm bin
或者npm bin -g
export PATH=$PATH:$(npm bin -g)
voila - Jakob Jingleheimer如果使用全局 (-g
) 标志安装了一个模块,你可以通过运行以下命令获取其父级位置:
npm list -g <module_name>
请注意,这将返回一个包含所有全局安装的模块的列表,因此你需要查找你要找的特定模块。
npm get prefix
或者npm ls -g --depth=0
它将打印出位置和已安装模块列表。
虽然不是直接回答,但可能有所帮助……
npm还拥有一个缓存文件夹,可以通过运行npm config get cache
命令(在Windows系统上为%AppData%/npm-cache
)找到。
npm模块首先会下载到此处,然后复制到npm全局文件夹(在Windows系统上为%AppData%/Roaming/npm
)或项目特定文件夹(例如your-project/node_modules
)。
因此,如果您想跟踪npm软件包,并且以某种方式查看所有已下载的npm软件包列表(如果未清除npm缓存),请查看此文件夹。该文件夹结构如下:{cache}/{name}/{version}
这个链接也可能有所帮助:https://docs.npmjs.com/cli/cache
/usr/local/lib/node_modules
目录下。 - Nick Campbell只需使用以下代码即可获取不包含依赖项的精简列表
npm list -g --depth 0
就像其他回答所说,最好的方法是做
npm list -g
然而,如果您安装了大量的npm
包,那么此命令的输出可能会非常长,滚动屏幕查看将是一个很大的痛苦(有时甚至无法向上滚动那么远)。在这种情况下,请将输出导入到more
程序中,像这样:npm list -g | more
$HOME/.npm-global/lib/node_modules
。 - Synxmax-g
选项安装模块,它将被安装到你的工作目录中。例如,如果你创建一个目录~/Desktop/tmp
,然后运行cd ~/Desktop/tmp
,再运行npm install appium
,然后运行ls
命令,你会看到node_modules package-lock.json
,因为你已经在工作目录中安装了一个名为appium
的Node模块... 这很让人困惑,因为-g
本来应该是默认值,但实际上不是。 - the_prole$HOME/.nvm/versions/node/v15.9.0/lib
下,该目录将根据您使用的node版本而更改。有关nvm的更多信息,请参见https://github.com/nvm-sh/nvm/blob/master/README.md。如所选答案中所述,我使用`npm list -g | head -1`找到了此目录。 - PatS