配置需要 js 才能在 javascript 中加载 AMD 模块



我是编写测试用例以使用gulp,mocha,chai测试我的javascript文件的新手。

我的文件目录

Project
|-- _src
|   `-- scripts
|       `-- ui
|           |-- ChangePos.js
|           |-- PosRenderer
|           `-- utils
|               |-- Element
|               `-- Config
`-- test
    `-- index.js

utils/ChangePos.js

 define(['Config',
            'Element',
            'PosRenderer'
] {
      function() {
      //mycode
      }
    });

它依赖于配置和元素文件。

测试/索引.js

var requirejs = require("requirejs");
var chai = require('chai');
var expect = chai.expect;
requirejs.config({
    baseUrl: './../_src/scripts/ui',
    paths: {
        utils: 'utils'
    },
    nodeRequire: require,
    map: {
        '*': {
            'NIT.Cookie': 'utils/Element'
        }
    }
});
    describe('almeObjectConfig', function() {
        var ele, conf, obj;
        before(function (done) {
            requirejs(['utils/Config', 'utils/Element'],
                function (config, element) {
                    console.log('Configuration: ' + config);
                    console.log('Element: ' + element);
                ele = element;
                conf = config;
                done();
            });
        });

我正在尝试通过指定路径"utils"来加载依赖于元素配置ChangePos

utils: 'utils'

我可以通过将 baseURL 指定为 baseUrl:'./../_src/scripts/ui/utils' 来显式加载 Element,但这里它只在 ui 文件夹内检查并给出一个未定义的对象。

如果我将所有文件放在 ui 文件夹中,因为它正在考虑基本 URL 并且只查看基本文件夹内部,它会起作用。

不确定我在这里错过了什么。提前感谢您的帮助。

查看您的配置,我看不到任何允许ChangePosElement一样加载utils/Element并像Config一样utils/Config加载的内容。特别是,paths配置'utils': 'utils'不执行此操作,并且对您拥有的特定配置没有任何作用。要获得您必须工作的代码,您必须paths

paths: {
    'Config': 'utils/Config',
    'Element': 'utils/Element'
}

最新更新