2013-08-26 53 views
49

背景如何忽略文件咕嚕醜化

我使用的咕嚕爲大約30分鐘前纔剛剛開始。所以請忍受我。

但是我有一個相當簡單的腳本,它會查看我的js,然後將它壓縮到一個文件中。

代碼

"use strict"; 
module.exports = function (grunt) { 

    // load all grunt tasks 
    require('matchdep').filterDev('grunt-*').forEach(grunt.loadNpmTasks); 

    grunt.initConfig({ 
     pkg: grunt.file.readJSON('package.json'), 
     uglify: { 
      options: { 
       beautify: true, 
       report: 'gzip' 
      }, 
      build: { 
       src: ['docroot/js/*.js', 'docroot/components/pages/*.js', 'docroot/components/plugins/*.js'], 
       dest: 'docroot/js/main.min.js' 
      } 
     }, 
     watch: { 
      options: { 
       dateFormat: function(time) { 
        grunt.log.writeln('The watch finished in ' + time + 'ms at' + (new Date()).toString()); 
        grunt.log.writeln('Waiting for more changes...'); 
       } 
      }, 
      js: { 
       files: '<%= uglify.build.src %>', 
       tasks: ['uglify'] 
      } 
     } 
    }); 

    grunt.registerTask('default', 'watch'); 

} 

問題

我main.min.js是越來越列入編譯各一次。意思是我的min.js正在獲得2倍,4倍,8倍,16倍等等。最好的解決辦法是增加一個異常並忽略main.min.js

回答

112

到SRC陣列的,添加

'!docroot/js/main.min.js' 

這樣就可以排除它。 !!將其變成排除。

http://gruntjs.com/api/grunt.file#grunt.file.expand

路徑匹配開頭的模式!將從返回的數組中排除。模式按順序處理,因此包含和排除順序非常重要。

這不是特定於grunt uglify,但任何使用grunt約定來指定文件的任務都可以這樣工作。

作爲一般性建議,儘管我會建議將構建的文件放在別的地方,而不是源文件。像在根文件夾dist中一樣。

+0

非常感謝,我曾經想過,它發生了。但仍然,很高興知道:) –

+1

只是想強調**結束**位的重要性 – tarikakyol

+0

在這裏結束非常重要。同意@trkaky – Ozil