あなた自身が言うように:
明らかに、ベスト プラクティスはモジュール名をあらゆる場所で使用することです。
RequireJS は、このプラクティスをある程度まで強制します。問題は、名前で RequireJSをロードすることを事実上言っていることをpaths
RequireJSに伝えることです。おそらく、フルパスで参照すると、これはあなたのエラーです。これが私のコードで発生した場合、エラーと見なします。したがって、これが発生したときに RequireJS が失敗することを望みます。'myMod':'src/js/myModule'
src/js/myModule
myMod
セマンティクスの問題もあります。基本的なケースでは、2 つの名前がrequire
異なるものに渡された場合、相対パスが解決されると、それらは 2 つの異なるモジュールを参照します。2 つの異なるモジュールを期待している場合はrequire('myMod')
、これで完了です。と を実行すると、同じモジュールが得られます。では、あなたが設定したもので、実際に何が欲しいのでしょうか? 同じモジュールですか、それとも異なるモジュールですか?require('src/js/myModule')
require('myMod')
require('myMod')
paths
RequireJS には、両方を提供する方法があります。両方のモジュール名で同じモジュールを取得したい場合は、構成を削除して、代わりにpaths
構成を使用します。map
map: {
'*': {
myMod: 'src/js/myModule'
}
}
これが意味することは、「すべてのモジュール ( *
) で、モジュールに対して要求が行われた場合、代わりにmyMod
モジュールをロードする」ということです。src/js/myModule
意図は非常に明確です。
同じソースを共有しているにもかかわらず、両方のパスで別のモジュールを提供したい場合は、モジュールに同じソースをロードする RequireJS プラグインを使用してそれを行うことができますが、RequireJS はこの単一のソースを別のモジュールとして登録します。