两个jQuery的一个RequireJS

时间:2013-03-21 20:58:44

标签: jquery requirejs

我有一个使用标准非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);
});

但它不起作用......

1 个答案:

答案 0 :(得分: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);
});