我的理解是它不应该发生,但它确实发生了。这些库最合适的解决方法是什么?
笔记:
- 我认为手动运行这些脚本
require.js
(使用脚本标签)应该可以工作,而且确实看起来确实如此。但是,RequireJS 文档明确警告该data-main
脚本是异步运行的。虽然require.js
应该已经正确定义了define
定义多个命名模块的脚本所需的功能,但我还假设如果没有从data-main
脚本加载正确的配置,可能会以非确定性的方式发生坏事。这个对吗? - 在这种情况下,我也看不出 , 和 configuration 属性的任何组合如何
shim
提供帮助,尽管我希望我错过了它。map
bundles
paths
第一个注释的澄清:(我的错,真的不清楚)
我在这里描述的只是手动执行(使用 HTML 脚本标签)定义RequireJS 和脚本之后data-main
的多个模块的脚本。知道后者是异步运行的,我的担忧应该会变得更加明显(但请随时要求我详细说明)。大部分是虽然我似乎可以成功地要求每个命名模块,但我不确定行为是确定性的(而且,它并不漂亮,我宁愿避免额外的脚本标签并异步正确加载所有内容) .
<script src="scripts/require.js" data-main="app/main.js"></script>
<script src="scripts/datajs-1.1.2.js"></script>
在这里,datajs-1.1.2.js 定义了两个模块,如上面链接中所述并复制如下:
// AMD support
if (typeof define === 'function' && define.amd) {
define('datajs', datajs);
define('OData', odata);
} ...