2014-04-06 31 views
9

例如醜化:使用IM的當前配置下,我Gruntfile到uglify我的JS腳本:如何使用我自己的選擇配置爲CONCAT並與咕嚕-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" 
     }, 

林意識到,咕嚕,usemin產生從在useminPrepare gruntfile選項聲明的HTML文件中的代碼塊的SRCDEST選項,例如:

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

所以我怎樣才能配置grunt-usemin使用這些相同的選項,如banner,sourceMap: false與生成的文件塊,我已閱讀通常在github或NPM註冊表中提供的快速文檔,但似乎沒有找到一個堅實的答案。

回答

14

一個句子是在文檔中非常重要的:

此外,useminPrepare動態生成的配置concat,則醜化,和cssmin。重要提示:您仍然需要手動管理這些依賴項並調用每個任務。

的原則是隻想要使用usemin(在繁重的任務寄存器),與所有你想要的主要任務聲明:CONCAT,醜化... Usemin將默認創建所有這些任務,而無需再聲明,根據您的registertask選項和html標記註釋。

代碼勝於言:

  1. 表達你的塊標記目標文件。在你的情況 是這樣的:
 <!-- 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 - 註冊要usemin在運行時生成您的 (它不會產生在你的文件進行任何操作的任務 - 東西應該在文檔中予以精簡)。例如 :

grunt.registerTask( '縮小',[ 'useminPrepare' '的concat' 'cssmin' '醜化' , '複製'
'修訂版 , 'usemin' ])

3 - 缺省情況下,除了useminPrepare和usemin產生的所有這些任務(看這些2塊grunt-usemin)的文檔。

然後,如果你想添加像sourcemap特定的選項,只是改寫配置代碼,而無需重新定義一切:

醜化:{ 選項:{ sourceMap:假 } }

希望它有幫助。