用grunt摩卡避免需要(../../../ ..)相对path

在进行unit testing时,我倾向于在我的项目结构顶部有一个名为test的目录,目录结构模仿要testing的源代码。 但是,例如,这些目录可能会变得很深

app/src/js/models/User.js

也许在一个testing中

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')

这可能吗? 我正在使用grunt-mocha-test ,但是我认为这个问题是一个更一般的问题。

有多个选项可以使用。 你最好的select可能是使用一些npm模块,例如这个 。 searchnpm注册的要求 ,有大量的选项,以便select适合您的需求。

或者,您可以编写一些类似的帮助函数。

如果你正在寻找一些本地的方式(内置到Node.js)来实现这一点,可悲的是没有。 你将不得不使用一个自定义函数或一个npm模块以一个很好的,可重用的方式来做到这一点。