【问题标题】:requirejs no longer loads cdn scripts after optimizationrequirejs优化后不再加载cdn脚本
【发布时间】:2012-02-28 20:26:39
【问题描述】:

optimizing 与 r.js 之后,我正在努力让 requirejs 工作 优化前效果很好 我正在关注使用 empty: 配置 main.js 和构建配置文件的文档 但优化后,CDN脚本不再加载。

public/index.html

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

public/editor/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
});

config/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 构建成功。

【问题讨论】:

  • 您解决了这个问题吗?我遇到了类似的问题。
  • 很遗憾没有,我放弃了使用requireJS,它可能是后来修复的东西。自二月以来我就没有看过它。
  • 你带了什么?我需要优化的依赖管理 :)

标签: requirejs


【解决方案1】:

您使用订单插件加载所有内容是否有特殊原因?

您在构建的 javascript 中是否遇到了加载顺序问题?

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

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 的问题,一旦你习惯了它的结构,我发现它是一个非常强大和有用的工具。

_佩斯

【讨论】:

  • 感谢您的贡献,这个问题已经很老了,不幸的是我不记得我试图为我回答您的问题做了什么。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-14
  • 2012-12-22
  • 1970-01-01
  • 1970-01-01
  • 2015-01-13
相关资源
最近更新 更多