我正在尝试为我的项目(Dojo/JS 项目)设置实习生,并且服务器不是 Node...我遇到加载程序问题,这似乎是由于 dojo.has 使用 Dojo 加载程序... here 中建议的 require 包装器不适合我。
我收到以下错误:
> node node_modules/intern/client.js config=tests/intern
Defaulting to "console" reporter
dojo/text plugin failed to load because loader does not support getText
TypeError: undefined is not a function
at Object.load (lib/dojo/dojo/text.js:199:6)
以下是我的实习生配置和测试文件:
/tests/intern.js:(配置文件)
loader: {
packages: [ { name: 'visitorsPortal', location: 'portals/visitor' },
{ name: 'dojo', location: 'lib/dojo/dojo'},
{ name: 'dijit', location: 'lib/dojo/dijit'},
{ name: 'portalLib', location: 'portals/lib'} ]
},
suites: [ 'tests/uitests' ],
测试/uitests:
define([
'intern!tdd',
'intern/chai!assert',
'portals/visitor/views/MyModule'
], function (test, assert, MyModule) {
// empty for now...
});
最佳答案
这与dojo/has
无关,而与dojo/text
插件有关,该插件需要仅在使用服务器时存在于Dojo 1加载器中的功能-侧。
如果您尝试测试依赖任何非标准 AMD 加载程序功能的软件,您将需要使用非标准加载程序,或使用兼容的替代副本覆盖这些模块其他装载机。
在这种特定情况下,最简单的方法是使用 Intern 的 geezer 版本,因为它包含旧的 Dojo 加载程序,其中包含这些非标准扩展。 最佳路径是将dojo/text
模块重新映射到另一个兼容模块,该模块不需要加载器中的任何特殊内容即可检索数据:
// in intern.js
// ...
loader: {
map: {
'*': {
'dojo/text': 'my/text'
}
}
},
// ...
关于dojo - 实习生 dojo 加载器问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18634434/