【问题标题】:requirejs dependency orderingrequirejs 依赖排序
【发布时间】:2014-05-30 03:30:08
【问题描述】:

鉴于我页面上的以下 requirejs 定义:

<script type="text/javascript">
    require(['path/to/scriptA']);
    require(['path/to/scriptB']);        
</script>

问题1:在不假设scriptA和scriptB之间存在依赖关系的情况下,requireJS是否保证在scriptB之前加载scriptA?

问题 2:假设 scriptA 内部将 scriptB 定义为依赖项。例如:

// scriptA:
define(['path/to/scriptB'], function(scriptB) {....

是否保证 scriptB 在 scriptA 之前加载,无论我的初始 require(..) 定义的顺序如何?由于 scriptA 将 scriptB 定义为依赖项,我应该从我的&lt;script> 标记中删除对 scriptB 的 require(..) 调用吗?

【问题讨论】:

  • 我不认为这是有保证的。我可能是错的,但是,您是否查看过在 shim 配置中设置依赖项?这将为您提供所需的订单requirejs.org/docs/api.html#config
  • 不要将“之前加载脚本”与“之前执行模块”混淆。我希望在这两种情况下它们都是并行加载的。

标签: javascript requirejs


【解决方案1】:

两个脚本应该并行加载。关于执行顺序,以下应该是正确的:

问题一:不,不明确定义依赖关系,不保证scriptA在scriptB之前执行。

问题2:是的,通过将scriptB显式定义为scriptA的依赖,它会先执行。考虑到这一点,您确实可以从原始脚本标签中删除 scriptB。

希望有帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-12-19
    • 1970-01-01
    • 2014-11-19
    • 2013-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多