有人能告诉我在哪里可以找到我用npm安装的Node.js模块吗?
当前回答
回显config: npm config ls或npm config列表 显示所有的配置设置:npm config ls -l或npm config ls——json 打印有效的node_modules文件夹:npm root或npm root -g 打印本地前缀:npm prefix或npm prefix -g (这是最接近包含包的父目录。Json文件或node_modules目录)
npm-config | npm文档 npm-root | npm文档 npm-prefix | npm文档
其他回答
命令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包中的模块列表。它还将为您提供缺失的依赖项列表,您可能需要有效地运行该项目。
在windows上,我使用npm list -g来查找它。默认情况下,我的(全局)包被安装到C:\Users\[Username]\AppData\Roaming\npm。
如果你正在寻找npm安装的可执行文件,也许因为你想把它放在你的PATH中,你可以简单地这样做
npm bin
or
npm bin -g
如果您试图从代码访问全局目录,则可以从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)
}
}