Pregunta

Tengo código como el siguiente

define("ModuleA", ["InitialDependency"], function (initDep){
   return {};
});


define("ModuleB", ["ModuleA", "OtherDependency"], function (moduleA, otherDep){
   return {};
});

Cada uno de estos módulos se define en archivos separados "Modulea.js", "Moduleb.js", "inicialDependency.js" y "Otherdependency.js".

Estos módulos se cargan secuencialmente en mi solicitud. Moduleb siempre se carga después de modulea. Esto significa que en la etapa de optimización no quiero que el script de Modulea se combine en el script hecho para Moduleb. Quiero lo siguiente

modulea.built.js incluye

  • inicialdependencia
  • modulea

    moduleb.built.js incluye

    • OtherdePendencia
    • moduleb

      No quiero que todos estén en el mismo archivo, sin embargo, ya que Moduleb nunca se puede cargar.

      Puedo hacer un script de compilación para ambos módulos, pero esto será el lento, ya que tengo algunos módulos en mi proyecto y me gustaría un script de compilación que construirá los muchos de ellos a la vez.

      ¿Qué necesito saber para crear un script de compilación para construir ambos módulos (y más que siguen el mismo patrón de dependencia)?

¿Fue útil?

Solución

Para lograr esto, tendría que jugar con la opción de configuración de modules.

Podría verse así:

{
    modules: [
        {
            name: "ModuleA",
            include: [],
            exclude: []
        },
        {
            name: "ModuleB",
            exclude: [
                "moduleA"
            ]
        }
    ]
}

Hay una configuración de ejemplo similar de James aquí: https://github.com/requirejs/example-multiapage

Por supuesto, al construir estos módulos por separado, puede terminar necesitando actualizar las rutas. Si es así, la mejor manera sería crear un archivo que contenga una llamada require.config con una configuración especial para su aplicación creada e incluyendo esta configuración en lugar de su habitual. Pero si establece dependencias de una manera buena separada, entonces probablemente estarás bien. Por "Good Separated" Way, me refiero a que si moduleA es el script base, entonces no debería tener dependencias empacadas con moduleB, ¡pero supongo que esto es un sentido común!

NOTA Sobre los módulos de Shimmed : AS SOLO CONFIGURACIÓN DE SOLO TRABAJO WHE Los archivos están cargados y por R.js para ordenar los complementos, asegúrese de no incluir un módulo de shim sin su dependencia. No 100% seguro de que estos se cargarán antes. Más información aquí: https://github.com/requirejs/example-multipage-shim

espero que esta ayuda!

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