2017-07-31 56 views
0

我在我的應用程序中有幾個JS,CSS和HTML文件。這是一個巨大的應用程序,我試圖遞歸縮小和uglify這些文件inplacegrunt uglify遞歸地址

我有一個構建服務器,我可以從中獲取原始集成。在將文件扔到服務器之前,我希望在相同的目錄結構下進行簡化。

即: /app/sales/checkout.js(正常文件) minifed版本應該是在同一個地方: /app/sales/checkout.js

我的呼嚕聲文件如下:

module.exports = function (grunt) { 
    grunt.initConfig({ 

    // define source files and their destinations 
    uglify: { 
     files: { 
      src: 'com.foo.web.online.portal/**/*.js', // source files mask 
      expand: true, // allow dynamic building 
      flatten: true, // remove all unnecessary nesting 
      dest: '' 
     } 
    }, 
    watch: { 
     js: { files: 'js/*.js', tasks: [ 'uglify' ] }, 
    } 
}); 

// load plugins 
grunt.loadNpmTasks('grunt-contrib-watch'); 
grunt.loadNpmTasks('grunt-contrib-uglify'); 

// register at least this one task 
grunt.registerTask('default', [ 'uglify' ]); 


}; 

離開目的地空無效。

我有很多文件夾和子文件夾: /結算/ /幾個js文件 /銷售/ /幾個js文件 /搜索/ ** /幾個js文件

我怎樣才能到位再壓縮和遞歸?

謝謝。

回答

2

利用grunt rename函數動態構建文件對象。這可以使文件在相同的目錄結構下被縮小(即用新縮小的數據覆蓋原始文件數據)。

Gruntfile.js

uglify任務可以被配置如下:

// ... 
uglify: { 
    dev: { // <-- include a target object 
    files: [{ 
     expand: true, 
     src: ['path/to/online/portal/**/*.js'], 

     // The dest value should be whatever the src glob 
     // pattern is, without the trailing /**/*.js part 
     dest: 'path/to/online/portal', 

     cwd: '.', 
     rename: function (dst, src) { 
     return src; 
     } 
    }] 
    } 
}, 
//... 

參見grunt-contrib-uglify文檔進一步信息的this部分。