首页 > 解决方案 > Node.js:从该应用安装的节点模块中获取应用文件夹的路径

问题描述

我有一个 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提前需要的文件的位置..)

标签: javascriptnode.jspath

解决方案


我找到了一个 npm 模块:app-root-path

看起来它只作为一个起点为你完成了所有肮脏的工作__dirname

如果有人有更简单/更好的方法,请发布答案:-)


推荐阅读