Intern.js和谷歌闭包编译器

时间:2014-11-10 23:16:51

标签: javascript google-closure-compiler google-closure intern

我不想为我想要测试的每个模块显式设置我的依赖树。例如,在我的主App模块中,我可能需要一个需要三个其他子模块的Base模块。尝试找出依赖关系树中每个文件的确切加载是一件痛苦的事情,我希望让应用程序自己找出依赖关系。

我还想在一个位置为每个测试加载我需要的所有常用文件。

因此,举例来说,我希望将以下内容变成“依赖关系”。文件:

'intern!bdd',
'intern/chai!expect',
'intern/order!vendor/src/sinonjs-built/lib/sinon',
'intern/order!vendor/src/angular/angular',
'intern/order!vendor/src/angular-mocks/angular-mocks',
'intern/order!node_modules/closure-library/closure/goog/base'

所以不要将它们添加到define:

define([
    'intern!bdd',
    'intern/chai!expect',
    'intern/order!vendor/src/sinonjs-built/lib/sinon',
    'intern/order!vendor/src/angular/angular',
    'intern/order!vendor/src/angular-mocks/angular-mocks'
], function (bdd, expect) {

我想这样做:

   define([
        'dependencies'
    ], function (bdd, expect) {

然后根据最顶层的父级添加模块:

   define([
        'dependencies',
        'path/to/app/module'
    ], function (bdd, expect) {
       goog.require('App'); // gimme all the modules!

和App可能看起来像:

goog.require('AppName.Base');
goog.require('AppName.BaseLayout');
goog.require('AppName.Login');
goog.provide('AppName.App');

angular.module( 'App', ['ngRoute', 'Base', 'Login', 'BaseLayout'])
// etc etc

并将自动为所有其他模块构建依赖关系树,因此我不必将路径添加到我的测试文件中的一百万个文件中。

这样的东西有可能吗?这个问题清楚了吗?

0 个答案:

没有答案