2014-07-19 10 views
6

Attualmente ho un paio di file html che assomigliano a questo:Grunt usemin percorsi di elaborazione situati in file js?

<!-- build:js({.tmp,app}) scripts/moduleX-scripts.js --> 
    <script src="scripts/moduleX/moduleXConfig.js"></script> 
    <script src="scripts/moduleX/featureX/controller.js"></script> 
    <script src="scripts/moduleX/featureX/service.js"></script> 
    <script src="scripts/moduleX/featureY/controller.js"></script> 
    <script src="scripts/moduleX/featureY/service.js"></script> 
    <!-- endbuild --> 

<!-- build:js({.tmp,app}) scripts/moduleY-scripts.js --> 
    <script src="scripts/moduleY/moduleYConfig.js"></script> 
    <script src="scripts/moduleY/featureW/controller.js"></script> 
    <script src="scripts/moduleY/featureW/service.js"></script> 
    <script src="scripts/moduleY/featureZ/controller.js"></script> 
    <script src="scripts/moduleY/featureZ/service.js"></script> 
    <!-- endbuild --> 

Poiché si tratta di un'applicazione angolare, vorrei utilizzare ocLazyLoad per la gestione dei miei moduli, quindi la mia configurazione sarebbe simile a questa:

angular.module('MyMainModule', [ 
    { 
    name: 'moduleX', 
    files: [ 
     'scripts/moduleX/moduleXConfig.js', 
     'scripts/moduleX/featureX/controller.js', 
     'scripts/moduleX/featureX/service.js', 
     'scripts/moduleX/featureY/controller.js', 
     'scripts/moduleX/featureY/service.js', 
    ] 
    }, 
    { 
    name: 'moduleY', 
    files: [ 
     'scripts/moduleY/moduleYConfig.js', 
     'scripts/moduleY/featureW/controller.js', 
     'scripts/moduleY/featureW/service.js', 
     'scripts/moduleY/featureZ/controller.js', 
     'scripts/moduleY/featureZ/service.js', 
    ] 
    } 
    ]) 

C'è qualche plugin per grunt che elabora questo file .js e sostituisce l'array files con versione miniata e revisionata?

+1

Hey @gerasalus, io sono bloccato su questa cosa esatta. Sei riuscito a capire la soluzione? –

risposta

0

È possibile utilizzare grunt-contrib-uglifyjs per ridurre i file.

grunt.initConfig({ 
    uglify: { 
    moduleX: { 
     files: { 
     'scripts/moduleX.min.js': ['scripts/moduleX/*.js'] 
     } 
    }, 
    moduleY: { 
     files: { 
     'scripts/moduleY.min.js': ['scripts/moduleY/*.js'] 
     } 
    } 
    } 
}); 

L'unico cambiamento che avrebbe bisogno di fare sarebbe quella di includere un file che ha dichiarato il modulo nella directory del modulo. Ad esempio, all'interno della directory scripts/moduleX, si avrebbe la seguente file:

// scripts/modeulX.js 
angular.module('moduleX', []); 
Problemi correlati