tl; dr: ¿Cómo mantengo el complemento text.js fuera de mi archivo optimizado cuando todas mis dependencias de texto están en línea?¿Cómo puedo evitar que el optimizador Require.js incluya el complemento de texto en los archivos optimizados?
Estoy usando el Require.js optimizer (a través del nodo) para optimizar algunos de los archivos JS en mi proyecto. Estoy usando el text plugin para cargar dependencias de texto (plantillas HTML, CSS). Tengo un módulo Quiero optimizar, incluyendo sus dependencias, así:
define(['text!core/core.css'], function(styles) {
// do setup stuff, return an object
});
Los Require.js documentos dicen que el archivo core/core.css
será inlined cuando corro el optimizador r.js
, que estoy invocando como este:
$ r.js -o baseUrl=./src name=core out=release/test.js
Tracing dependencies for: core
Uglifying file: c:/path/release/test.js
c:/path/release/test.js
----------------
c:/path/src/text.js
text!core/core.css
c:/path/src/core.js
La buena noticia es que esto funciona. Cuando miro el archivo optimizado, puedo ver el texto inline, algo como esto:
define("text!core/core.css",[],function(){return"some CSS text"}),
define("core",["text!core/core.css"],function(a){ ... })
La mala noticia es que también se incluye el plugin text.js - se añade alrededor de 3K, y consiste en (como se Hasta donde puedo decir) ahora código completamente innecesario para cargar archivos de texto externos. Sé que 3K no es mucho, pero estoy tratando de mantener mi código altamente optimizado, y por lo que yo entiendo, el código para el complemento de texto no es en absoluto necesario si mis dependencias de texto están en línea. Puedo mantener el complemento de texto agregando exclude=text
a mi llamada r.js
, pero si lo hago, me sale un error cuando trato de usar el código optimizado en el navegador diciendo que el complemento text.js no se pudo cargar.
Así:
¿Hay alguna razón por la text.js plugin es realmente necesario aquí?
Si no es así, no hay una opción de configuración para
r.js
que puede solucionar este comportamiento, oes un fácil cuña para los text.js plugin que puedo incluir a convencer a requerir. js que el plugin innecesario está cargado?
OK, gracias - Voy a probar esto.Esencialmente, la respuesta es (3) hacer un calce, que puedo resolver en mi proceso de construcción. – nrabinowitz
Para la posteridad: hice una revisión como esta: 'define (" text ", {load: function() {}});' y la adjunté al comienzo de mi archivo optimizado. Parece que funciona bien – nrabinowitz
Me preguntaba lo mismo. 'stubModules: ['text']' hace el truco en las versiones más nuevas de RequireJS. – superlukas