14

現在、外部コードをアプリケーションに統合しています。プロセスの一部として、requirejs モジュールの 1 つを私たちのものに置き換える必要があります。

明らかに、コードを変更することはできません。そうしないと、更新のたびに変更を行う必要があります。私にできることは、main.js (requirejs の data-main) を変更することです。

大まかに、彼らが持っているものは次のとおりです。

requirejs.config({
    packages: [
        'beerpong'
    ]
});

beerpongそのため、いくつかのモジュールを含むこのパッケージがあります。これらのモジュールの中には、beer.jsファイルがあります。で要求される場合がありrequire('beerpong/beer')ます。

これとは別に、別のフォルダーにファイルがありますvodkapong/beersubstitute。私が望むのは、誰かがいるときはいつでもrequire('beerpong/beer')、そのrequirejsが実際に彼に私のvodkapong/beersubstitute代わりにサービスを提供することです。

tl;dr: 既存のモジュールを再マップして、代わりに自分のモジュールを使用するにはどうすればよいですか?

PS: 残念ながら、私たちは実際にビアポン ゲームを書いているわけではありません... いつの日か、そうなるかもしれません!

4

2 に答える 2

31

map オプションを使用できます。特定のモジュールまたは"*"名前を持つすべてのモジュールの AMD モジュールを再マップできます。例は次のとおりです。

require.config({
    map: {
        "*": {
            "beerpong/beer": "vodkapong/beersubstitute"
        }
    },
    ...
});
于 2013-09-19T11:32:43.870 に答える
1

あなたはこのようなことをすることができます -

require.config({
    paths: {
        jquery_ui_scrollbar: 'libs/jquery/jquery.custom-scrollbar'
    }
});
require(['dependency1', 'dependency2'], function (dep1, dep2) {
   // code goes here
});

そして、定義呼び出しでこれを行うことができます-

define(['jquery_ui_scrollbar'], function(scrollbar) {});
于 2013-09-19T10:53:42.100 に答える