如何在本地测试跨域构建?

2024-03-23

使用dojo工具包,在本地测试将作为跨域执行的代码而不进行实际构建的正确方法是什么?

看起来,有三个可能的选择(每个都有自己的缺点):

  1. Using local (non xd) XMLHttpRequest dojo.require
    • 这个选项并没有真正测试 xd 行为,因为它通过 XHR 同步 dojo.require[s] js。
  2. djConfig.debugAtAllCosts = true;
    • 虽然此选项确实异步加载所需的代码(通过“script”标签),但它也通过 XHR 拉入代码,解析其中的 dojo.require[s] 并将它们拉入。这(使用 loader_debug),再说一遍,这不是 loader_xd 正在做的事情。有关此主题的更多信息,请参见另一个问题。 https://stackoverflow.com/questions/1899281/dojo-requireif-does-not-allow-local-variables
  3. Creating a cross-domain build
    • 这种方法需要构建,这在我运行代码的环境中是不可能的(我们正在使用我们自己的即时构建过程,其中仅包含特定页面所需的js。这进程不适合开发)。

因此,我的问题是:有没有一种方法可以使用 loader_xd,它不需要 xd 构建(它将 xd 前缀/后缀添加到每个文件)?

第二种方法(使用 debugAtAllCosts)也让我质疑预解析 dojo.require[s] 的动机。如果 loader_xd 不会(或者更确切地说不能)预解析,为什么为测试/调试而创建的方法会这样做?


佩勒描述了情况。如果您只想为模块生成 .xd.js 文件,您可以查看 util/buildscripts/jslib/buildUtilXd.js 及其 buildUtilXd.xdgen() 函数。

制作自己的脚本需要一些工作,但是您可以查看 util/buildscripts/build.js 来获取指针。

我希望在 Dojo 的未来(可能是 Dojo 2.x 时间框架)我们可以切换到一个加载器,该加载器仅使用具有模块格式的脚本标签,该模块格式具有围绕模块的函数包装器,由开发人员编码。这将允许相同的模块格式在本地和 xd 情况下工作。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在本地测试跨域构建? 的相关文章

随机推荐