2014-04-06 14 views
9

Na przykład: Im przy aktualnej konfiguracji poniżej, aby uglify moich skryptów JS w moim Gruntfile:Jak używać własnych konfiguracji opcji dla concat i zeszpecić z grunt-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 świadomość, że grunt-usemin generuje z src i dest opcje w bloku kodu w pliku html zadeklarowanej w useminPrepare opcji gruntfile, na przykład:

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

Tak jak mogę skonfigurować grunt-usemin, aby użyć tych samych opcji, takich jak banner, sourceMap: false z wygenerowanymi blokami plików, przeczytałem szybką dokumentację zwykle podaną w github lub rejestrze NPM, ale wydaje się, że nie znalazłem solidnej odpowiedzi na to.

Odpowiedz

14

Jedno zdanie jest bardzo ważne w dokumentacji:

Ponadto useminPrepare dynamicznie generuje konfigurację concat, zeszpecić i cssmin. Ważne: nadal musisz ręcznie zarządzać tymi zależnościami i wywoływać każde zadanie.

Zasada jest zadeklarować jedynie, że chcesz użyć usemin (w zadaniu rejestru grunt) ze wszystkimi głównego zadania, które chcesz: concat, zeszpecić ... Usemin będzie domyślnie utworzyć wszystkie te zadania bez anymore deklaracja, oparta na opcjach rejestru rejestracyjnego i komentarzach HTML.

Code jest lepszy niż słowa:

  1. ekspresowe pliki docelowe swojemu blokowym znaczników. W twoim przypadku coś takiego:
 <!-- 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 - Rejestracja zadania, które chcesz usemin generuje dla Twojej czasie wykonywania (nie ma nic w pliku wygenerować - coś, co powinno być precyzyjne w dokumentacji). Na przykład :

grunt.registerTask ('Zmniejsz' [ 'useminPrepare' 'concat' 'cssmin' 'zeszpecić' "Copy
", rev , 'usemin' ])

3 - domyślnie wszystkie te zadania są generowane poza useminPrepare i usemin (poszukaj w dokumentacji dla tych 2 bloki grunt-usemin).

Następnie, jeśli chcesz dodać specyficzne opcje jak sourcemap, po prostu przepisać kod konfiguracji bez przedefiniowania wszystko:

zeszpecić: { opcji: { sourceMap: false } }

Mam nadzieję, że to pomaga.