在TheIntern测试框架下加载Dojo AMD模块失败

时间:2014-03-22 15:20:07

标签: javascript dojo intern

我正在创建一个使用TheIntern测试框架的演示。 当我尝试加载测试模块 demo / intests / data 时,我不断收到此错误:

Defaulting to "console" reporter
Error: Failed to load module demo/intests/data from http://localhost:8081/dojo_playground/tutorials/demo/intests/data.js (parent: *12)
    at /home/bogdanbiv/.nvm/v0.10.24/lib/node_modules/intern/node_modules/dojo/dojo.js:754:12
    at fs.js:207:20
    at Object.oncomplete (fs.js:107:15)

但是,从浏览器访问此文件是可以的,这是服务器日志:

~/Projects$ http-server -p 8081 ./
Starting up http-server, serving ./ on port: 8081
Hit CTRL-C to stop the server
[Sat, 22 Mar 2014 13:06:55 GMT] "GET /dojo_playground/tutorials/demo/intests/data.js" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/32.0.1700.107 Chrome/32.0.1700.107 Safari/537.36"

我尝试在 demo / intests / data 中尽可能简单地创建模块:

define({
    greeting: "Hello!",
    howAreYou: "How are you?"
});

define([], function(){});

数据:

  • 应用程序根位于$ HOME / Projects / dojo_playground / tutorials /
  • 模块 demo / intests / data 是 位于* $ HOME / Projects / dojo_playground / tutorials / demo / intests / data.js *
  • 实习生配置:http://pastebin.com/hyi55qp7
  • webserver是Nodejitsu的http-server,运行自localhost,webroot是$ HOME / Projects

1 个答案:

答案 0 :(得分:1)

这里至少有两个问题:

  1. 您正尝试使用HTTP URL作为路径从文件系统加载模块。这是行不通的,原因很明显。您需要修复配置,以便它不会尝试生成URL,而是通过不为加载器的baseUrl属性指定绝对URL,可以与文件系统或网络请求一起使用的相对路径。
  2. 您无法为单个模块定义两个值;每个模块应该只有一个define个呼叫。