1.1中的实习目录结构和循环依赖错误

时间:2013-06-25 23:28:59

标签: javascript dojo amd intern

我一直在努力使用Intern 1.1进行Intern设置的推荐目录结构。我注意到从1.0到1.1的变化影响了实习生目录所在的位置。

我注意到intern包的依赖包括dojo,但似乎是指dojo v2:“dojo”:“git + https://github.com/csnover/dojo2-core.git#1a7d8fa”我不知道为什么会这样,因为v2还没有出来。

我已经挣扎了好几天才得到一个非常简单的测试文件,但没有成功。我的层次结构是这样的:

web/ (root)
    node_modules/
        intern/
    tests/
        FilterGridTest.js
        intern.js
    libs/
        dojo/
        dijit/
        dgrid/
        ....
        ev/
            grids/
                FilterGrid.js (file being tested)

我的FilterGridTest.js文件的上半部分是:

define([
    'intern!object',
    'intern/chai!assert',
    'intern/chai!expect',
   'ev/grids/FilterGrid'
], function (registerSuite, assert, expect, FilterGrid) {
    registerSuite({
        name: 'FilterGrid Test',
    ...

我尝试了各种修改,实习生无法加载测试文件或者获得循环依赖性错误:

Circular dependency: *5 -> tests/FilterGridTest -> ev/grids/FilterGrid -> dojo/dom-construct -> dojo/dom-attr -> dojo/dom-prop -> dojo/dom-construct

我的intern.js文件有这个loader属性:

loader: {
    //baseUrl: 'libs/',
    // Packages that should be registered with the loader in each testing environment
    packages: [
        { name: 'dojo', location: 'libs/dojo' },
        { name: 'dijit', location: 'libs/dijit' },
        { name: 'dgrid', location: 'libs/dgrid' },
        { name: 'put-selector', location: 'libs/put-selector' },
        { name: 'xstyle', location: 'libs/xstyle' },
        { name: 'ev', location: 'libs/ev' },
        { name: 'web', location: '.'}
    ]
},

其中web是我的web根目录,并且有一个package.json文件。

我不知道导致此错误的原因或解决方法。

1 个答案:

答案 0 :(得分:1)

循环依赖关系通知不是错误。您正在使用的Dojo 1具有正确处理的循环依赖项。 Dojo 1的AMD加载程序也会报告循环依赖项,但默认情况下禁用此功能,而默认情况下它在Intern使用的加载程序中启用。