2014-04-06 14 views
9

Zum Beispiel verwenden: Im die aktuellen Konfiguration unten an uglify meinen JS-Skripte in meinem Gruntfile mit:Wie meine eigene Option Konfigurationen für concat und verunstalten mit Grunzen-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 bewusst, dass Grunzen-usemin erzeugt die src und dest Optionen aus dem Code-Block in der hTML-Datei in useminPrepare gruntfile Option erklärt, zum Beispiel:

<!-- 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 --> 

So Wie kann ich grunt-usemin konfigurieren, um dieselben Optionen zu verwenden, wie banner, sourceMap: false mit den generierten Dateiblöcken, ich habe die schnelle Dokumentation gelesen, die normalerweise in github oder NPM Registry gegeben wird, aber keine solide Antwort darauf zu finden.

Antwort

14

Ein Satz ist sehr wichtig, in der Dokumentation:

Zusätzlich useminPrepare generiert dynamisch die Konfiguration für concat, verunstaltet und cssmin. Wichtig: Sie müssen diese Abhängigkeiten weiterhin manuell verwalten und jede Aufgabe aufrufen.

Das Prinzip ist nur zu erklären, dass Sie usemin verwenden möchten (in der Task-Grunzen-Register) mit allen wichtigen Aufgabe, die Sie wollen: Concat, verunstalten ... Usemin wird standardmäßig erstellen alle diese Aufgaben ohne mehr Deklaration, basierend auf Ihren Optionen für Registerkarten und HTML-Markup-Kommentaren.

-Code ist besser als Worte:

  1. Drücken Sie Ihren Block Markup Zieldateien. In Ihrem Fall so etwas wie:
 <!-- 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 - die Aufgaben registrieren, die Sie usemin für Ihre während der Laufzeit generiert werden sollen (es generiert nichts in der Datei - etwas, das sollte in der Dokumentation präzisiert werden). Zum Beispiel :

grunt.registerTask ('minify', [ 'useminPrepare' 'concat' 'cssmin' 'verunstalten' , 'Kopie'
"rev , 'usemin' ])

3 - Standardmäßig werden alle diese Aufgaben erzeugt außer useminPrepare und usemin (Blick auf die Dokumentation für diese 2 Blocks grunt-usemin).

Dann, wenn Sie bestimmte Optionen wie sourcemap hinzufügen möchten, nur den Konfigurationscode umschreiben, ohne alles neu zu definieren:

uglify: { Optionen: { sourceMap: false } }

Hoffe es hilft.