我有一个带有目录的应用程序,这些目录中的文件通过 require
相互引用。我可能会移动它们,所以我讨厌使用相对路径。有没有办法使用相对于我的应用程序根目录的路径?
我有
/home/robert/src/application/
|\ routes
| \ foo.js
|\ models
\ bar.js
// foo.js
var bar = require('../models/bar')
, stuff = require('../other_stuff/stuff');
我要
/home/robert/src/application/
|\ routes
| \ foo.js
|\ models
\ bar.js
// foo.js
var bar = require('/models/bar')
, stuff = require('/other_stuff/stuff');
除了路径附加到 /home/robert/src
而不是自行评估。
最佳答案
很多人已经开始创建一个 index.js
文件,从一个位置导出所有模块。然后,模块只需要索引文件中的这些导出,而不是实际定义模块的位置。如果你移动过任何东西,你只需要更新这个文件。另外,它使创建代码覆盖率构建变得更加容易。
Index.js 最终会出现一堆像这样的行:
module.exports.app = process.env.EXPRESS_COV ?
require('./lib-cov/app') : require('./lib/app');
基本上,这会根据变量使用标准模块或代码覆盖版本为任何需要它的模块导出app
。
关于node.js - 我可以要求 'require' 从我的应用程序根目录中搜索模块吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10369538/