Node.js 使用grunt mocha避免要求(../../../....)相对路径

Node.js 使用grunt mocha避免要求(../../../....)相对路径,node.js,mocha.js,Node.js,Mocha.js,当进行单元测试时,我倾向于在项目结构的顶部有一个名为test的目录,目录结构模仿要测试的源代码。然而,例如,这些目录可能会变得相当深 app/src/js/models/User.js 也许是一次测试 test/app/src/js/models/User.js 现在,当我想要包含User.js模块时,我使用require('../../../../../../app/src/js/models/Users.js'),这非常麻烦 理想情况下,我想使用require('/app/src/js/mo

当进行单元测试时,我倾向于在项目结构的顶部有一个名为
test
的目录,目录结构模仿要测试的源代码。然而,例如,这些目录可能会变得相当深

app/src/js/models/User.js

也许是一次测试

test/app/src/js/models/User.js

现在,当我想要包含
User.js
模块时,我使用
require('../../../../../../app/src/js/models/Users.js')
,这非常麻烦

理想情况下,我想使用
require('/app/src/js/models/User.js')
或者甚至
require('User.js')


这可能吗?我正在使用,但我认为这个问题更一般。

您可以使用多种选项。例如,您最好的选择可能是使用一些npm模块。在npm注册中心搜索require,有很多选项,所以选择适合您需要的选项

或者,您可以编写一些辅助函数来执行类似的操作


如果您正在寻找某种本机方法(内置于Node.js中)来实现这一点,那么很遗憾,没有。您必须使用自定义函数或npm模块以一种良好的、可重用的方式来实现这一点。

您可以尝试将测试文件放入
test/models/User.js
而不是
test/app/src/js/models/User.js
中,然后您可以使用
require('../app/src/js/models/User.js')