2

MootoolsMore ライブラリのコンポーネントを多数使用しており、これらはすべて 1 つの .js ファイルにコンパイルされています。シムで一度ライブラリを定義し、その中のすべてのクラスにアクセスする方法はありますか? 以下はうまくいきませんが、どうすればこのようなことができますか?

shim:{
 mootoolsMore:{
  deps    : ["mootools"]
  exports : ["Slider", "Sortables"]
 }
}

// then inside my module I could access the Slider component like so
define( function(require) {
  var Slider = require('mootoolsMore').Slider
4

1 に答える 1

1

RequireJS のみに固有の「シム」機能は必要ありません。標準の AMD ローダー API を使用できます。

require(['js!path/to/MooToolsCore.js'], function(){
    // nesting in order to insure that Moo Core runs first
    require(['js!path/to/MooToolsMore.js'], function(){
        // Your Slider and Sortables will be in global.
        // just use them.
        window.Slider(/* ... */)
    })
})

RequireJS は「js!」を必要としないことに注意してください。プラグインを明示的に宣言する必要がありますが、代わりに、ファイルの拡張子のみを調べます。「.js」の場合、「js」プラグインを介してファイルを実行します。これは非標準の動作です (AMD 仕様にはない) が、RequireJS では次のような行を置き換えることができるはずです。

['js!path/to/MooToolsMore.js']

これとともに:

['path/to/MooToolsMore.js']
于 2013-01-11T00:40:28.233 に答える