使用 dojo 工具包,在不进行实际构建的情况下,本地测试将作为跨域执行的代码的正确方法是什么?
看起来, 有三个可能的选项 (每个选项都有自己的缺点):
因此,我的问题是:有没有办法使用不需要 xd 构建的 loader_xd(它将 xd 前缀/后缀添加到每个文件)?
第二种方式(使用 debugAtAllCosts)也让我质疑预解析 dojo.require[s] 的动机。如果 loader_xd 不会(或者更确切地说不能)预解析,为什么为测试/调试而创建的方法会这样做?
最佳答案
我认为没有任何方法可以在不构建和部署 XD 的情况下加载它。您对各种选项的分析似乎是正确的。
debugAtAllCosts 专门用于解决调试问题,直到最近,大多数浏览器都无法对通过 eval 引入的代码执行任何智能操作。时至今日,Firefox 仍会在控制台中报告异常,因为它出现在 eval 站点 (bootstrap.js) 中,行号与 eval 偏移,而不是从实际的 eval 缓冲区中偏移,通常该 eval 缓冲区是匿名的。 Firebug 是第一个增强调试体验的调试器 to jump through some hoops,它允许 Dojo 的加载器在 XHR 和 eval 之间注入(inject)的特殊元数据,以确定源的文件路径。 Webkit/Safari 最近也实现了这一点。我相信 debugAtAllCosts 早于 XD 加载程序。
关于dojo - 如何在本地测试跨域构建?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1922351/