2012-02-07 70 views
5

我努力让requirejs工作optimizing与r.js 它工作正常,预优化 我下面的配置main.js的文档,并使用empty:生成配置文件后 但是,优化后,CDN脚本不再加载。requirejs CDN脚本不再负载优化后

公共/ index.html的

<script data-main="editor/js/main" src="editor/js/vendor/require.js"></script> 

公共/编辑/ JS/main.js

requirejs.config({ 
    baseUrl: "/editor/js", 
    paths: { 
     "jquery": "http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min", 
     "order": "vendor/require_order", 
     "underscore": "vendor/underscore", 
     "handlebars": "vendor/handlebars-1.0.0.beta.4", 
     "jquery.mobile.router": "vendor/jquery.mobile.router", 
     "jquery.mobile": "http://code.jquery.com/mobile/1.0.1/jquery.mobile-1.0.1.min" 
    } 
}); 
require(["order!jquery", "order!underscore", "order!handlebars", "order!jam", "order!jquery.mobile"], function() { 
    //loaded 
}); 

配置/ build.js

({ 
    baseUrl: "../public/editor/js", 
    name: "main", 
    out: "../public/editor/js/main-built.js", 
    paths: { 
     "order": "vendor/require_order", 
     "underscore": "vendor/underscore", 
     "handlebars": "vendor/handlebars-1.0.0.beta.4", 
     "jquery.mobile.router": "vendor/jquery.mobile.router", 
     "jquery": "empty:", 
     "jquery.mobile": "empty:" 
    } 
}) 

什么时候我运行r.js node config/r.js -o config/build.js main-built.js已成功构建。

+1

您是否解决了此问题?我遇到了类似的问题。 – MediaJunkie 2012-11-13 17:47:05

+0

不幸的是,我放弃使用requireJS,它可能是后来修复的东西。自二月份以来,我一直没有看过它。 – Rob 2012-11-14 12:59:58

+1

你一起去过什么?我需要优化的依赖管理:) – Shanimal 2013-01-24 19:10:58

回答

0

是否有一个特别的原因,你为什么使用订单插件加载所有内容?

您是否在构建的JavaScript中加载了订单问题?

如果你正常加载jQuery手机(没有插件),你的“空白”配置应该生效。

require(["jquery", "underscore", "handlebars", "jam", "jquery.mobile"], function() { 

http://requirejs.org/docs/optimization.html#empty

您还需要定义依赖关系链jQuery.mobile.router

requirejs.config({ 

    paths: { 
     "jquery": "http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min", 
     "order": "vendor/require_order", 
     "underscore": "vendor/underscore", 
     "handlebars": "vendor/handlebars-1.0.0.beta.4", 
     "jquery.mobile.router": "vendor/jquery.mobile.router", 
     "jquery.mobile": "http://code.jquery.com/mobile/1.0.1/jquery.mobile-1.0.1.min" 

    }, 

    shim: { 
     "router": { 
      "deps" : ["jquery.mobile"] 
     }, 
     "jquery.mobile" : { 
      "deps" : [ "jquery.mobile.router"], 
      "exports": "$.mobile" 
     }, 

     "jquery.mobile.router": { 
      "exports": "$.mobile.Router" 
     } 
    } 
}); 

看到了这个问题的答案:

Require.js with jQueryMobile-Router

我希望通过requirejs解决您的问题,一旦你习惯了它的结构,我发现它是一个非常强大和有用的工具。

_Pez

+0

感谢您的贡献,这个问题是相当古老的,不幸的是我不记得我想要做什么来回答你的问题。 – Rob 2013-07-04 10:31:03