RequireJS:我可以使用require()而不是define()

时间:2014-01-18 20:18:57

标签: requirejs

假设有三个模块: m1 m2 m3

其中 mi (i = 1..3)为空模块:

define(function() {
    return this;
})

并存在依赖于 m1 m2 m3 模块的附加模块 useAll

useAll模块的两个实现之间有什么区别:

  1. 所有模块都依赖于define()

    中提到的useAll

    define([' m1 ',' m2 ',' m3 '],function(){...})< / p>

  2. require()函数中提到的模块

    define(function(){     要求([ ' M1 ']);     要求([ '平方米']);     要求([ '立方米']);     ... })

  3. 脚本加载时间和顺序是否有问题?

1 个答案:

答案 0 :(得分:3)

  1. 不同之处在于,在第二次实施中你的 requirer.js视为嵌套依赖项和。{ 默认情况下,它们不会包含在优化过程中, 除非你指定:

    findNestedDependencies :真的

    来自文档:

      

    在require()或define调用中查找require()依赖项。通过   默认此值为false,因为这些资源应该是   考虑动态/运行时调用。但是,对于一些优化   在场景中,最好将它们包含在构建中。

  2. 另一个区别是,第二个实现可以加载 CommonJs模块也是。

  3. 如果使用require来定义模块,则执行时不能返回任何值。这意味着,您不能将此模块用作对另一个模块的真正依赖