使用 dojo 工具包,在不进行实际构建的情况下,在本地测试将作为跨域执行的代码的正确方法是什么?
看起来,有三种可能的选择(每种都有自己的缺点):
- 使用本地(非 xd)XMLHttpRequest dojo.require
- 这个选项并没有真正测试 xd 的行为,因为它通过 XHR 同步地 dojo.require[s] js。
- djConfig.debugAtAllCosts = true;
- 尽管此选项确实异步加载所需的代码(通过“脚本”标签),但它也通过 XHR 拉入代码,解析其中的 dojo.require[s],并将它们拉入。这(使用 loader_debug),同样,这不是 loader_xd 正在做的事情。在另一个问题中有关此主题的更多信息。
- 创建跨域构建
- 这种方法需要构建,这在我运行代码的环境中是不可能的(我们使用我们自己的即时构建过程,其中仅包括特定页面所需的 js。这个过程不适合开发)。
因此,我的问题是:有没有办法使用 loader_xd,它不需要 xd 构建(它将 xd 前缀/后缀添加到每个文件)?
第二种方式(使用 debugAtAllCosts)也让我质疑预解析 dojo.require[s] 的动机。如果 loader_xd 不会(或者更确切地说不能)预解析,为什么为测试/调试创建的方法会这样做?