我已经开始在一个虚拟项目上使用 require js。我现在想使用 r.js 脚本来构建我的生产项目。
上下文是这样的:
名为 start.js 的主文件是:
require([/* some stuff */], function (){ /* app logic */ });
其中有一个 if 决定我应该根据某些条件需要什么。
所需文件是 ModuleA 或 ModuleB
ModuleA 和 ModuleB 都有依赖关系。
define([/*some deps*/], function(dep1, dep2...) { /* app logic */ return { /* interface */ }
在优化和模块连接之前,在开发模式下一切正常。
使用 r.js 构建时,我将以下内容指定为模块目标:模块:[{name:“start”},{name:“ModuleA”},{name:“ModuleB”}]
问题是我的 ModuleA 变成:
define(dep1 ..);
define(dep2 ..);
define(ModuleA ..);
但是没有从 ModuleA 加载。开发中来自ModeulA的代码加载并执行,构建后的代码加载但不运行。
我该如何解决这个问题?
更新
http://pastebin.com/p1xUcY0A --> start.js
http://pastebin.com/dXa6PtpX --> ModuleA js-animation.js
http://pastebin.com/xcCvhLrT --> ModuleB css-animation.js 无依赖。
http://pastebin.com/j51V5kMt --> 运行优化器时使用的 r.js 配置文件。
http://pastebin.com/UVkWjwe9 --> 运行 r.js 后 js-animation.js 的外观。这是有问题的文件。我没有从这个文件中得到 js-animation 模块。require 不会返回我的 js-animation 对象。
编辑:
删除模块定义末尾的 .js 和 from start js 后,优化后的 start.js 为http://pastebin.com/LfaLkJaT,js-animations 模块为http://pastebin.com/qwnpkCC6。在 chrome 中,我在控制台中收到此错误http://pastebin.com/Hq7HGcmm