nodejs中如何获取全局模块的路径?

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

阅读 1.6k
1 个回答

比如,我有一个全局安装的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上的包

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题