有人能告诉我在哪里可以找到我用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版本中,模块总是放在/usr/local/lib/node或者你在.npmrc文件中指定NPM根目录的任何地方。然而,在NPM 1.0+中,模块被安装在两个地方。您可以在/中将模块安装到应用程序的本地。Node_modules或者你可以全局安装它们,这将使用上面的。
更多信息请访问https://github.com/isaacs/npm/blob/master/doc/install.md
我在寻找真正的配置时开始发狂,所以这里是linux上所有配置文件的列表:
/etc/npmrc /home/youruser/.npmrc /root/.npmrc 。/。NPMRC在当前目录下的包旁边。json文件(感谢@CyrillePontvieux)
在windows上:
c/Program\ Files/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全局,但不会覆盖本地
这里是所有缺失的信息,以查找在哪里配置了什么。希望我讲得够详尽了。
Windows 10:当我运行npm prefix -g时,我注意到安装位置在我用来安装的git shell路径内。即使将该位置添加到路径中,来自全局安装包的命令也不会被识别。固定:
运行NPM配置编辑 将前缀改为“C:\Users\username\AppData\Roaming\npm” 将该路径添加到系统路径变量中 使用-g重新安装包。
在Ubuntu 14.04中,它们安装在
/usr/lib/node_modules
推荐文章
- 一元加/数字(x)和parseFloat(x)之间的区别是什么?
- angularjs中的compile函数和link函数有什么区别
- 删除绑定中添加的事件监听器
- 很好的初学者教程socket.io?
- HtmlSpecialChars在JavaScript中等价于什么?
- React: 'Redirect'没有从' React -router-dom'中导出
- 如何在React中使用钩子强制组件重新渲染?
- 我如何使用Jest模拟JavaScript的“窗口”对象?
- 我如何等待一个承诺完成之前返回一个函数的变量?
- CALL_AND_RETRY_LAST分配失败-进程内存不足
- 在JavaScript中根据键值查找和删除数组中的对象
- 使嵌套JavaScript对象平放/不平放的最快方法
- 在Ubuntu上安装Node.js
- 如何以及为什么'a'['toUpperCase']()在JavaScript工作?
- 有Grunt生成index.html不同的设置