2017-07-31 9 views
0

私はいくつかのJS、CSS、HTMLファイルを自分のアプリに持っています。それは巨大なアプリであり、私はこれらのファイルを再帰的に縮小し、醜くしようとしています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を参照してください。