请问在nodejs中如何获取全局安装包的绝对路径(兼容linux/windows)。
比方说通过 npm i foo -g
安装了一个全局包,我想在js文件中获取这个全局包的绝对路径而非引入这个包,请问该怎么做?
比如,我有一个全局安装的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上的包