2012-05-21 621 views
9

He utilizado el siguiente perfil de compilación personalizado (1.7) para compilar mi carpeta de lanzamiento.Dojo 1.7 creación personalizada - Cómo eliminar archivos no utilizados de la carpeta de lanzamiento

var profile = { 
basePath: "..", 
action: "release", 
cssOptimize: "comments", 
mini: true, 
optimize: "closure", 
layerOptimize: "closure", 
stripConsole: "all", 
selectorEngine: "acme", 
packages:[ 
    { 
     name: "dojo", 
     location: "./../../dojo" 
    }, 

    { 
     name: "dijit", 
     location: "./../../dijit" 
    }, 

    { 
     name: "dojox", 
     location: "./../../dojox" 
    } 
], 

layers: { 
    "dojo/dojo": { 
     include: [ 
          "dojo/dojo", 
          "dijit/form/Button", 
          "dojox/form/TimeSpinner" 
        ], 
     customBase: true, 
     boot: true 
    } 
}, 

resourceTags: { 
    amd: function (filename, mid) { 
     return /\.js$/.test(filename); 
    } 
} }; 

En mi aplicación web, estoy usando sólo dos componentes, uno es el botón de paquete 'dijit' y otra es TimeSpinner de 'dojox'. Entonces, he incluido estos dos componentes en el archivo 'dojo/dojo.js', está funcionando como esperaba.

Pero la carpeta de lanzamiento contiene las carpetas 'dojo', 'dijit' y 'dojox' con muchos archivos.

La mayoría de los componentes no se utilizan en mi aplicación web, pero sus archivos están presentes en la carpeta de lanzamiento. Aunque no se cargarán en el navegador (debido a AMD), no quiero tener dichos archivos en mi carpeta de lanzamiento.

No es necesario mantener una cantidad tan grande de archivos en mi subversión.

Por lo tanto, mis preguntas son las siguientes:

  1. ¿Cómo eliminar archivos'.uncompressed.js de la carpeta de destino?
  2. ¿Cómo eliminar los archivos, CSS, plantillas de componentes no utilizados de la carpeta de lanzamiento?

Por favor, ayúdame ...

Respuesta

2

La utilidad acumulación dojo no tiene la intención de separar un subconjunto de archivos y no tiene configuración de este.

El constructor realiza la compresión, envuelve los módulos heredados en declaraciones de estilo amd y combina las capas en un modo de carga de módulos en caché.

Esto significa que una vez que crea el dojo/dojo, customBase (esta es una configuración muy avanzada, por cierto, cuidado con el uso) capa - se construye un árbol de dependencias. El árbol de dependencias es una lista de archivos que cada uno se comprime y se sutura de manera similar a los siguientes;

// file: dojo/dojo.js 
declare(
    {cache: 
    { 
     "moduleDep_1": dojo.cache("moduleDep_1", {}), 
     "moduleDep_2": dojo.cache("modu...", ..) 
    }, "dojo/dojo", null, { 

    dojo/dojo here 

}); 

¿Qué pasa si su visitante tiene una dependencia de base que ha omitido?

De todos modos, la utilidad de compilación anterior tenía una lista de dependencias de funcionalidad que no está presente en la utilidad de compilación 1.7. Esto te habría 'guardado' :)

Si estás 100% seguro de que el único archivo que necesitas es tu archivo de capas, ¿por qué no simplemente cargar ese único archivo en tu webhotel?

4

Puede añadir las siguientes líneas en la parte inferior de build.sh

find . -type f -name '*.uncompressed.js' -print0 | xargs -0 rm -rdf 

find . -type f -name '*.consoleStripped.js' -print0 | xargs -0 rm -rdf 
+0

Esto no responde a la pregunta 2. –

+2

En la misma línea Solía ​​'find. -name \ *. uncompressed.js -type f -delete' –

+0

¿Funciona también para build.bat (windows)? –

Cuestiones relacionadas