获取从哪个node.js执行的目录
我有一些项目,我运行它与node main.js
/ make test
等。我需要的是从脚本获取此目录。 不仅来自main.js
,还来自任何子模块。 我尝试使用path
插件和__directory
,但我得到当前文件的path(例如子模块)。 我也尝试require('path').dirname(require.main.filename)
,但是当我运行make test
我得到摩卡dirname而不是我的项目目录。 什么是解决这个最简单的方法?
process.cwd()
将提供。
__dirname
为您提供文件所在的path。
require.cache
存储每个加载的模块及其关联的导入值,父模块,子模块,绝对文件path等。
我相信每个模块都被分配到caching对象使用其文件path作为caching的关键,但你可能要仔细检查,只是为了确保。
如果是这样的话,像Object.keys(require.cache)
这样简单的东西就会给你一个所有模块的文件path的数组。 然后根据需要parsing每个path,从每个模块path中提取您正在查找的目录信息。