9 votes

Dojo 1.7 custom build - Comment supprimer les fichiers inutilisés du dossier release

J'ai utilisé le profil de construction personnalisé ci-dessous (1.7) pour construire mon dossier de version.

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);
    }
} };

Dans mon application web, j'utilise seulement deux composants, l'un est un bouton du paquet 'dijit' et l'autre est un TimeSpinner de 'dojox'. J'ai donc inclus ces deux composants dans le fichier 'dojo/dojo.js' et cela fonctionne comme prévu.

Mais le dossier de la version contient les dossiers 'dojo', 'dijit' et 'dojox' avec beaucoup de fichiers.

La plupart des composants ne sont pas utilisés dans mon application web, mais leurs fichiers sont présents dans le dossier release. Même s'ils ne seront pas chargés dans le navigateur (à cause de l'AMD). Je ne veux pas avoir de tels fichiers dans mon dossier de publication.

Il n'est pas nécessaire de maintenir un tel nombre de fichiers dans ma subversion.

Mes questions sont donc les suivantes :

  1. Comment supprimer les fichiers '.uncompressed.js' du dossier release ?
  2. Comment supprimer les fichiers, CSS, templates des composants inutilisés du dossier de la version ?

S'il vous plaît, aidez-moi...

4voto

Manu Points 1678

Vous pouvez ajouter les lignes suivantes au bas 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

2voto

mschr Points 5003

L'utilitaire de construction dojo n'est pas destiné à séparer un sous-ensemble de fichiers et n'a pas de configuration pour cela.

Le constructeur fait de la compression, il enveloppe les modules existants dans des déclarations de style amd et il combine les couches dans un mode de chargement de modules en cache.

Cela signifie qu'une fois que vous créez la couche dojo/dojo, customBase (il s'agit d'un paramètre très avancé, attention à l'utilisation), un arbre de dépendance est construit. L'arbre de dépendance est une liste de fichiers qui sont chacun compressés et suturés ensemble de la manière suivante ;

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

  dojo/dojo here

});

Et si votre visiteur a une dépendance de base que vous avez oubliée ?

Quoi qu'il en soit, l'ancien utilitaire de compilation avait une fonctionnalité dependencyList qui n'est pas présente dans l'utilitaire de compilation 1.7. Cela vous aurait "sauvé" :)

Si vous êtes sûr à 100% que le seul fichier nécessaire est votre fichier de calque, pourquoi ne pas simplement télécharger ce seul fichier sur votre hôtel web ?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X