如何在生产环境中动态加载多个优化的requirejs模块?

Vla*_*ula 7 javascript requirejs js-amd

我开始在虚拟项目中使用require js.我现在想使用r.js脚本来构建我的生产项目.

上下文是这样的:

  • 名为start.js的主文件是:

    require([/* some stuff */], function (){ /* app logic */ });
    
    Run Code Online (Sandbox Code Playgroud)

    哪个有if,根据某些条件决定我应该要求什么.

  • 所需文件是ModuleA或ModuleB

  • ModuleA和ModuleB都有依赖关系.

    define([/*some deps*/], function(dep1, dep2...) { 
        /* app logic */ 
        return { /* interface */
    }
    
    Run Code Online (Sandbox Code Playgroud)
  • 在优化和模块连接之前,一切都在开发模式下正常工作.

  • 使用r.js构建时,我将以下内容指定为模块目标:modules:[{name:"start"},{name:"ModuleA"},{name:"ModuleB"}]

问题是我的ModuleA变成了:

 define(dep1 ..);
 define(dep2 ..);
 define(ModuleA ..);
Run Code Online (Sandbox Code Playgroud)

但是没有从ModuleA加载.开发中的ModeulA代码加载并执行,构建加载后的代码但不运行.

我怎么能解决这个问题?

UPDATE

http://pastebin.com/p1xUcY0A - > start.js

http://pastebin.com/dXa6PtpX - > ModuleA js-animation.js

http://pastebin.com/xcCvhLrT - > ModuleB css-animation.js没有deps.

http://pastebin.com/j51V5kMt - >运行优化程序时使用的r.js配置文件.

http://pastebin.com/UVkWjwe9 - >运行r.js后js-animation.js的样子.这是有问题的文件.我没有从这个文件中获取js-animation模块.require不会返回我的js-animation对象.

编辑:

删除模块定义末尾的.js后,从start js开始,优化的start.js是http://pastebin.com/LfaLkJaT,js-animations模块是http://pastebin.com/qwnpkCC6.在chrome中,我在我的控制台http://pastebin.com/Hq7HGcmm中收到此错误

Vla*_*ula 1

当前的 require.js 实现似乎存在问题。解决方法是创建一个全局调解器或调解器模块,并让所有动态加载的模块调用调解器并通过事件宣布自己。这对我有用。