2014-04-06 9 views
9

Per esempio: Im utilizzando la configurazione corrente in basso a uglify miei script JS nella mia Gruntfile:Come usare la mia configurazioni opzionali per concat e uglify con grugnito-usemin

uglify: { 
     options: { 
      report: "min", //"gzip", 
      sourceMap: true, 
      preserveComments: false, //"some", "all" 
     }, 
     application: { 
      options: { 
       // expand: true, 
       banner: '<%= app.banner %>', 
       preserveComments: "some" 
      }, 
      src: 'dist/js/application.js', 
      dest: ".tmp/js/application.min.js" 
     }, 
     dependencies: { 
      options: { 
       sourceMap: false 
      }, 
      src: ['dist/js/dependencies.js'], 
      dest: ".tmp/js/dependencies.min.js" 
     }, 

Im consapevoli che grugnito-usemin genera le src e dest opzioni dal blocco di codice nel file html dichiarato in useminPrepare opzione gruntfile, ad esempio:

<!-- build:js js/app.js --> 
    <script src="js/app.js"></script> 
    <script src="js/controllers/thing-controller.js"></script> 
    <script src="js/models/thing-model.js"></script> 
    <script src="js/views/thing-view.js"></script> 
    <!-- endbuild --> 

Così come posso configurare grunt-usemin per utilizzare queste stesse opzioni, come banner, sourceMap: false con i blocchi di file generati, ho letto la documentazione rapida solitamente fornita nel registro github o NPM ma sembra non trovare una risposta solida a questo.

risposta

14

Una frase è molto importante nella documentazione:

Inoltre, useminPrepare genera dinamicamente la configurazione per concat, uglify e cssmin. Importante: è ancora necessario gestire manualmente queste dipendenze e chiamare ogni attività.

Il principio è quello di dichiarare solo che si desidera utilizzare usemin (nel compito registro grugnito) con tutto il compito principale che si desidera: concat, uglify ... Usemin sarà di default di creare tutte queste operazioni senza più dichiarazione, in base alle opzioni registertask e ai commenti markup html.

Codice è meglio delle parole:

  1. esprimere il vostro blocco di markup file di destinazione. Nel tuo caso qualcosa come:
 <!-- build:js js/app.min.js --> 
    <script src="js/app.js"></script> 
    <script src="js/controllers/thing-controller.js"></script> 
    <script src="js/models/thing-model.js"></script> 
    <script src="js/views/thing-view.js"></script> 
    <!-- endbuild --> 

2 - Registrare le attività che si desidera usemin genera per il vostro durante il runtime (non genera nulla nel file - qualcosa che dovrebbe essere precisi nella documentazione). Per esempio :

grunt.registerTask ('minify', [ 'useminPrepare' , 'concat' , 'cssmin' , 'uglify' , 'copia'
, 'rev , 'usemin' ])

3 - per impostazione predefinita, tutti questi compiti sono generate tranne useminPrepare e usemin (consultare la documentazione per questi 2 isolati grunt-usemin).

Poi, se si desidera aggiungere opzioni specifiche come Sourcemap, basta riscrivere il codice di configurazione senza ridefinire tutto:

uglify: { opzioni: { Sourcemap: false } }

Spero che aiuti.

Problemi correlati