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


当前回答

如果您试图从代码访问全局目录,则可以从process.execPath返回。例如,要找到wsproxy,它在{NODE_GLOBAL_DIR}/bin/wsproxy中,你可以:

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

这里还有npm命令行的工作方式@ 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))

其中globalPrefix在ec9fcc1/lib/config/defaults.js#L92-L105中有一个默认设置:

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)
    }
}

其他回答

最简单的方法就是去做

NPM list

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

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

C: \ MyProgramData \巧克力色\ lib \ nodejs.commandline.0.10.31 \ \ node_modules工具

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

正如其他答案所说,最好的办法就是去做

npm list -g

然而,如果你安装了大量的npm包,这个命令的输出可能会很长,而且要向上滚动很痛苦(有时甚至不可能滚动那么远)。

在这种情况下,将输出输送到more程序,如下所示

npm list -g | more

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

npm也有一个缓存文件夹,可以通过运行npm config get cache (%AppData%/npm-cache)找到。

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

因此,如果你想跟踪npm包,以及以某种方式,所有下载的npm包的列表(如果npm缓存没有被清理)可以看看这个文件夹。文件夹结构为{cache}/{name}/{version}

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

命令npm root会告诉你npm包的有效安装目录。

如果你当前的工作目录是一个节点包或者是一个节点包的子目录,npm root会告诉你本地安装目录。不管当前工作目录是什么,NPM root -g都会显示全局安装根目录。

例子:

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

请参见文档。

适用于Windows 7、8和10 - % USERPROFILE % \ AppData \ \ npm \ node_modules徘徊

注意:

如果你在文件夹cd ..直到进入C:目录。然后输入cd %USERPROFILE%\AppData\Roaming\npm\node_modules。然后,神奇的是,%USERPROFILE%将变成Users\YourUserProfile\。

我只是想澄清Decko在第一次回复中提到的想法。NPM list -g将列出你已全局安装的所有位。如果你需要找到你的项目相关的npm包,那么cd 'your angular project xyz',然后运行npm list。它将显示npm包中的模块列表。它还将为您提供缺失的依赖项列表,您可能需要有效地运行该项目。