使用grunt缩小时保持文件夹结构

时间:2014-09-05 06:45:21

标签: gruntjs

我使用javascript构建了一个应用程序。我有多个.js文件,跨多个文件夹和子文件夹进行管理。我使用grunt-contrib-uglify缩小和使用它们。它做得很好。但我的问题是它迭代地遍历每个.js文件并缩小它们但不是维护文件夹结构,所有缩小的js文件都放在一个目标文件夹中。 例如:- 我有一个JS文件夹。它有5个子文件夹 - A,B,C,d,电子 每个人都有60-70 .js文件。现在当我缩小它们时,这些都被缩小并放在一个JS-Min文件夹中。但文件夹结构全部消失了。

请建议一种方法,我可以使用它来维护文件夹和子文件夹结构。我在grunt的官方网站上搜索过它,但没有解决方案。

我的Gruntfile.js如下 -

module.exports = function (grunt) {
grunt.initConfig({
  requirejs_obfuscate: {
    options: {
      mangle: true,
        dir: 'jsm',
        salt: 'salt',
        root: 'gruntfiles',
        length: 6,
        quotes: 'double',
         concurrency: 2,
        keepLinefeeds: false,
        keepIndentations: false,
        encodeStrings: true,
        encodeNumbers: true,
        moveStrings: true,
        replaceNames: true,
        variableExclusions: [ '^_get_', '^_set_', '^_mtd_' ],

    }
  },
jsObfuscate: {
    test: {
      options: {
        concurrency: 2,
        keepLinefeeds: false,
        keepIndentations: false,
        encodeStrings: true,
        encodeNumbers: true,
        moveStrings: true,
        replaceNames: true,
        variableExclusions: [ '^_get_', '^_set_', '^_mtd_' ]
      },
      files: {
      src:'jsm/*.js' , // source files mask
      dest:'jso/',
        strings: true,
            expand: true,    
            flatten: true,
            ext: '.js'   
           }
  }
},
    uglify: {
    mangle:{all:true},
    squeeze: {dead_code:true},
    codegen: {quote_keys: true},
      files: { 
             cwd: 'js/',
             src: ['*.js', '**/*.js'],
             dest:'jsm/',
             strings: true,
             expand: true,
             flatten: true
          }
       }
});

grunt.loadNpmTasks('grunt-contrib-watch');
grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.loadNpmTasks('grunt-minified');
grunt.loadNpmTasks('grunt-encoding');
grunt.loadNpmTasks('grunt-requirejs-obfuscate');
grunt.loadNpmTasks('js-obfuscator');

grunt.registerTask('default', ['uglify','requirejs_obfuscate']);
};

0 个答案:

没有答案