dojo - 实习生 dojo 加载器问题

标签 dojo intern

我正在尝试为我的项目(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/

相关文章:

javascript - Dojo 1.9 和 Intern 1.7 - require.on 未定义?

google-chrome - 从命令行启动 Chrome 仿真

javascript - 实习生 JS + Saucelabs : Does not start session when using firefox browser

javascript - TheIntern 测试框架异步设置

ios - 无法使用 Leadfoot/Intern 找到 FindByXpath

svg - 文本和组节点的 dojox.gfx 边界框

javascript - Openlayers map 在初始加载时未正确调整大小。手动调整浏览器大小后可以很好地调整大小

javascript - 为什么 dojo CDN 导入代码中不存在该协议(protocol)

dojox/form/Uploader 附加参数

javascript - Dojo 版本和 Intern 兼容性