2012-07-13 26 views
12

R.js no está cargando mi shim, y así jQuery se está cargando antes de que tinyMCE y tiny se inicialicen antes de que se cargue. ¿Cómo puedo obtener el calce para trabajar ?:Require.js + R.js Optimizer Ignorando Shim

acumulaciones js.js:

var requirejs = require('requirejs'); 
var config = { 
    mainConfigFile: '../js/main.js', 
    include: [], 
    name: 'main', 
    out: '../js/build/build.js', 
}; 

    requirejs.optimize(config, function (buildResponse) { 
    var contents = fs.readFileSync(config.out, 'utf8'); 
}); 

main.js:

require.config({ 
    paths: { 
     jQuery: 'common/libs/jquery/jquery-min', 
     TinyMCE: 'common/libs/tinyMCE/tiny_mce', 
    }, 
    shim: { 
     'jQuery': { 
      deps:['TinyMCE'], 
      exports: '$', 
     }, 
     'jQueryUi': { 
      deps: ['jQuery'] 
     }, 
     'jQuerySelectmenu': { 
      deps: ['jQuery', 'jQueryUi'] 
     }, 
     'jQueryAutosize': { 
      depts: ['jQuery'] 
     }, 
     'Underscore': { 
      exports: '_' 
     }, 
     'Backbone': { 
      deps: ['Underscore', 'jQuery'], 
      exports: 'Backbone' 
     } 
    } 
}); 

require(['common/src/app'], function (App) { 
    App.initialize(); 
}); 
+1

El require.config() no se analiza sea r.js. Debe crear un archivo de configuración para r.js. Mire aquí: http://stackoverflow.com/questions/11323414/i-am-struggling-with-the-requirejs-optimizer-and-non-amd-modules/11454409#11454409 – devundef

+1

No estoy en el punto, pero acabo de descubrirlo puede usar [lodash] (https://github.com/bestiejs/lodash/) en lugar de guión bajo, y perder el guión de subrayado. –

+0

¿Realmente quieres cargar algo pequeño antes de jquery? – devundef

Respuesta

11

Esta cuestión ya se ha fijado en r.js 2.1.11

basta con colocar

wrapShim: true en la configuración de generación.

github issue

configuration example

+1

Enlace apropiado para emitir: https://github.com/jrburke/r.js/issues/623 – Victor

6

me encontré con algunas cuestiones similares recientemente que me tenían un poco perplejo. No estoy familiarizado con el código TinyMCE, pero veo que no lo has cortado.

Las cuñas (generalmente) no pueden depender de las bibliotecas de estilos de AMD. No estoy seguro de si TinyMCE pertenece o no a la categoría de estilo del módulo AMD, pero si lo hace ... tiene problemas. Si no es así, necesitas calzarlo también.

https://github.com/jrburke/requirejs/wiki/Upgrading-to-RequireJS-2.0#wiki-shim

advertencia importante para la "cuña" config:

Sólo use otros módulos "corrección" como dependencias para los scripts calzar o bibliotecas de AMD que no tienen dependencias y llamada define() después de que también crea un global (como jQuery o lodash). De lo contrario, si utiliza un módulo AMD como dependencia para un módulo de configuración shim, después de una compilación, ese módulo AMD no podrá evaluarse hasta después de que se ejecute el código sombreado en la compilación, y se producirá un error. La última solución es actualizar todo el código ajustado para tener llamadas AMD defined() opcionales.

Cuestiones relacionadas