exignetjs construir script
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)?
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!