2

我正在使用MootoolsMore 库中的一堆组件,它们都被编译成一个 .js 文件。有没有办法在 shim 中定义一次库并可以访问其中的所有类?以下不起作用,但我该怎么做这样的事情?

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 的“shim”功能。您可以只使用标准 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 回答