0

標準の非AMDjavascriptを使用するWebサイトがあり、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 に答える