我有一个 Node.js 应用程序 (MyGreatApp
( 需要一个节点模块,如下所示:
// MyGreatApp/level_1/level_2/build.js
const myNpmModule = require('myNpmModule')();
所述节点模块(myNpmModule
(执行以下代码:
// MyGreatApp/node_modules/myNpmModule/index.js
const path = require('path');
module.exports = function() {
console.log(path.parse(process.mainModule.filename).dir);
}
控制台上记录的内容是:
/Users/myname/myapps/MyGreatApp/level_1/level_2/
我想在控制台上登录的是:
/Users/myname/myapps/MyGreatApp/
换句话说,从节点模块中执行path.parse(process.mainModule.filename).dir
将返回需要该模块的文件文件夹的路径。
但我想知道的是安装/使用该模块的应用程序的父文件夹的路径。
(注意:我不会知道需要提前myNpmModule
的文件的位置。
我找到了一个 npm 模块来做到这一点:app-root-path
看起来它只依靠__dirname
作为起点为您完成了所有肮脏的工作。
如果有人有更简单/更好的方法,请发布答案:-(