使用dojo工具包,本地测试将作为跨域执行的代码的正确方法是什么,而不进行实际构建?
看来,有三个可能的选项(每个都有自己的缺点):
因此,我的问题是:有没有办法使用loader_xd,它不需要xd构建(将xd前缀/后缀添加到每个文件中)?
第二种方式(使用debugAtAllCosts)也让我质疑预解析dojo.require [s]的动机。如果loader_xd不会(或者更确切地说不能)预解析,为什么为测试/调试创建的方法会这样做呢?
答案 0 :(得分:3)
制作自己的脚本需要花费一些工作,但你可以查看util / buildscripts / build.js作为指针。
我希望将来Dojo(可能是Dojo 2.x时间帧)我们可以切换到一个加载器,它只使用脚本标签,模块格式在模块周围有一个函数包装器,由开发人员编写。这将允许相同的模块格式在本地和xd情况下工作。
答案 1 :(得分:1)
我认为没有任何方法可以在不构建和部署XD的情况下进行XD加载。您对各种选项的分析似乎是正确的。
debugAtAllCosts专门用于解决调试问题,直到最近,大多数浏览器都无法通过eval引入的代码执行任何智能操作。仍然在今天,Firefox将在控制台中报告异常,因为它出现在eval站点(bootstrap.js),其中行号与eval相反,而不是来自实际的eval缓冲区,通常该eval缓冲区是匿名的。 Firebug是第一个用于增强调试体验的调试器to jump through some hoops,并允许Dojo的加载器在XHR和eval之间注入的特殊元数据,以确定源的文件路径。 Webkit / Safari最近也实现了这一点。我相信debugAtAllCosts会在XD加载器之前进行更新。