Pregunta

Acabamos de comenzar a usar necesidades en nuestro proyecto y nos encanta. Actualmente solo lo estamos utilizando para administrar nuestros muchos complementos jQuery en los que se ejecuta el sitio, por lo que apenas están rascando la superficie de su potencial ... pero debido a las limitaciones de tiempo, esto tiene que esperar.

Tengo algunos problemas para obtener el optimizador como me gustaría, me pregunto si podría decirme si es posible hacer esto. Mi estructura de directorio:

> /common/
> /common/*.js - common plugins used on most pages on the site
> /infrequent/
> /infrequent/infrequentModule.js
> /infrequent/ckeditor
> /infrequent/ckeditor/1000s.js
> /require.js
> /jquery.js
> /main.js - this file contains all scripts in common. It looks at the page and call the necessary plugins.

Optimización/esperanzas de construcción:

  • Main.js contendría todos los scripts comunes. En la mayoría de las páginas, este script será el único cargado (excepto requerir.js)
  • Main.js mira la página, si se ve que necesita un complemento/módulo poco frecuente que carga ese async. Entonces, en una página poco frecuente, puedo cargar requerir.js, main.js y infrequentmodule.js.

He probado varios métodos en el script de compilación para excluir e incluir archivos para obtener los resultados deseados, pero fue en vano. ¿Alguien tiene alguna idea o sabe si esto es, de hecho, incluso posible?

¿Fue útil?

Solución

Ok, entonces obtuve algunas respuestas excelentes en el grupo de Google para requerir.js - http://groups.google.com/group/requirejs/browse_thread/thread/359b02473f4e707

La siguiente es una respuesta útil que me dieron que espero que pueda ayudar a alguien más ...

Hola, actualmente estoy haciendo esto en uno de mis proyectos, aquí está mi build.js:

paths: { 
                //load libs from cdn 
                "jqueryUI": "jqueryUI", //temp static file for build 
                "swfobject": "swfobject", //temp static file for build 
                "Templates": "../Templates/Settings" 
        }, 
modules: [{ 
            name: "appName", 
                        excludeShallow: ["jqueryUI", "swfobject", "Modules/ 
module.preferences"] 
        } 

Luego, en uno de mis módulos, tengo una llamada requerida para módulos/ módulos.

function loadPreferences(){ 
 require(["Modules/module.preferences"],function(){ 
                     //Execute some init code after the module has 
loaded 
         }) 
 } 
} 

Esto logra lo que describió donde he requerido y cargado principal en la carga de la página, luego el módulo. Las preferencias cargan async cuando lo necesito. Espero que eso ayude, Jeff.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top