就像在这个问题上添加一个简短的前言 - 这可能是Node如何运作的真正问题,也可能是我对Node中模块如何工作的一个基本误解。
最近,我一直在研究一个新项目,特别是一个需要通过.json
文件进行配置的新Node模块。我遇到了很多问题,通过将模块链接到Angular 2(v5)项目并尝试在服务中使用该模块进行测试。
由于我现在已经设置了模块,因此在初始化模块时会立即加载配置。它试图查找config.json
文件,并从上述文件中读取值。在某种程度上,我有这个工作。我能够要求文件,读取文件,如果找不到文件则抛出错误 - 但只能在与模块主文件相同的目录中。我遇到的问题是试图确定如何找到主机项目根路径的路径 - 在本例中是Angular项目。例如,假设模块根目录的绝对路径为/home/dev/angular2project/src/node_modules/module/
。如何确定主机的根路径,在本例中为/home/dev/angular2project/
?如果模块已全局安装怎么办?
我试图利用我对path
模块的弱理解,结合SO的各种搜索来解决这个问题。我尝试使用path.resolve(__dirname)
无效path.resolve(process.cwd)
。这在单独调试模块时很有效。当试图从Angular项目运行时,它只返回/
作为路径,尽管Angular项目的实际根目录为home/dev/Desktop/angular2proj
。