我使用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']);
};