How to grunt-uglify multiple script files while keeping folder structure

后端 未结 5 1748

I have not found a good way to grunt-uglify multiple script files spread over multiple folders while keeping the folder structure including the uglified files intact. The on

5条回答
  •  我在风中等你
    2020-12-23 23:07

    This solution not working for me.

    This is working example:

            path: {
                build: {
                   src: 'assets',
                   js: 'js',
                   css: 'css'
                },
                js: 'js',
                css: 'css'
            },
            uglify: {
                scripts: {
                    expand: true,
                    cwd: '<%= path.js %>/',
                    src: [
                        '**/*.js', 
                        '*.js',
                        //skip minified scripts
                        '**/!*.min.js', 
                        '!*.min.js'
                    ],
                    dest: '<%= path.build.src %>/<%= path.build.js %>/',
                    rename: function (destBase, destPath) {
                        return destBase + destPath.replace('.js', '.min.js');
                    }
                }
            },
            //same options for css minify
            cssmin: {
                styles: {
                    expand: true,
                    cwd: '<%= path.css %>/',
                    src: [
                        '**/*.css',
                        '*.css',
                        //skip minified styles
                        '**/!*.min.css', 
                        '!*.min.css'
                    ],
                    dest: '<%= path.build.src %>/<%= path.build.css %>/',
                    rename: function (destBase, destPath) {
                        return destBase + destPath.replace('.css', '.min.css');
                    }
                }
            },
            //and watch it for changes
            watch: {
                js: {
                    files: [
                        '<%= path.js %>/*.js',
                        '<%= path.js %>/**/*.js'
                    ],
                    tasks: [
                        'uglify:scripts'
                    ],
                    options: {
                        livereload: true
                    }
                },
                css: {
                    files: [
                        '<%= path.css %>/*.css',
                        '<%= path.css %>/**/*.css'
                    ],
                    tasks: [
                        'cssmin:styles'
                    ],
                    options: {
                        livereload: true
                    }
                }
            }
    
    • grunt 0.4.1
    • grunt-contrib-uglify 0.9.1
    • grunt-contrib-cssmin 0.12.2
    • grunt-contrib-watch 0.6.1

提交回复
热议问题