nodejs中如何获取全局模块的路径?
请问在nodejs中如何获取全局安装包的绝对路径(兼容linux/windows)。比方说通过 npm i foo -g
安装了一个全局包,我想在js文件中获取这个全局包的绝对路径而非引入这个包,请问该怎么做?
回复
1个回答
test
2024-07-05
比如,我有一个全局安装的apidoc的包
首先,我需要在我的当前项目的目录下npm link apidoc
这样可以保证当前项目可以require到这个包
然后,大多的包根目录下都会有package.json这个文件,所以在代码中可以使用
const path = require('path');
let packagePath = path.dirname(require.resolve("apidoc/package.json"));
console.log(packagePath) //C:\Users\Administrator\AppData\Roaming\npm\node_modules\apidoc
可以输出这个包的的所在目录,兼容绝大数npm上的包
回复
适合作为回答的
- 经过验证的有效解决办法
- 自己的经验指引,对解决问题有帮助
- 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容