0

我有一个使用标准非 AMD javascripts 的网站,它有 jQuery 版本“1.7.2”。我希望转向使用 require.js 我有一个看起来像这样的主文件。

require.config({
    paths: {
        jquery: "../components/jquery/jquery.min"
    }
});

require(["jquery"], function($) {
    console.log($().jquery;);
});

我想要发生的是让它运行和记录(1.9.1),并且让我能够console.log($().jquery;);在浏览器中运行并获得“1.7.2”。这意味着所有需要依赖项都使用新版本但需要自己不不要乱用全局范围。我怎样才能做到这一点?

在 main 的构建文件中,我可以看到 jQuery 被包含在任何函数中。我希望它嵌套在一个函数中,防止它在全局范围内。

我什至可以做这样的事情

require.config({
  paths: {
    jquery: "../components/jquery/jquery.min"
  },
  shim: {
    jquery:{
      exports: "$JQ"
    }
  }
});

define("main", ["jquery"], function($JQ) {
  console.log($JQ().jquery);
});

但它不工作...

4

1 回答 1

0

也许试试这个:

编辑

require.config({
    paths: {
        jquery: "..components/jquery/jquery.min",
        jquery172: "../components/jquery/jquery-1.7.2.min",
        jquery191: "../components/jquery/jquery-1.9.1.min"
    }
});

// use jQuery 1.7.2 here
define("main", ["jquery172"], function($JQ) {
  console.log($JQ().jquery);
});


// use jQuery 1.9.1 here
define("some other module", ["jquery191"], function($JQ) {
  console.log($JQ().jquery);
});

// use whatevers global jQuery here
define("some other module", ["jquery"], function($JQ) {
  console.log($JQ().jquery);
});
于 2013-03-21T21:19:30.557 回答