Gruntjs 我能告诉UglifyJS只压缩和损坏所有文件,除了一些我只想连接的文件吗?

Gruntjs 我能告诉UglifyJS只压缩和损坏所有文件,除了一些我只想连接的文件吗?,gruntjs,uglifyjs,Gruntjs,Uglifyjs,是否可以指定我希望压缩和损坏的文件的名称和数组(默认丑陋行为),但也可以指定不应触摸的文件列表,只是连接 谢谢。我相信您需要两个数组,一个是要压缩和损坏的文件列表,另一个是要连接的文件列表 压缩和损坏的阵列将用于Uglify 连接的数组将在Grunt Contrib Concat上使用。您可以用不同的方法解决此问题。我发布了一个扩展示例来说明我们可以做什么: uglify: { doAll: { options: { banner: '// <

是否可以指定我希望压缩和损坏的文件的名称和数组(默认丑陋行为),但也可以指定不应触摸的文件列表,只是连接


谢谢。

我相信您需要两个数组,一个是要压缩和损坏的文件列表,另一个是要连接的文件列表

压缩和损坏的阵列将用于Uglify


连接的数组将在Grunt Contrib Concat上使用。

您可以用不同的方法解决此问题。我发布了一个扩展示例来说明我们可以做什么:

uglify: {
    doAll: {
        options: {
            banner: '// <%= pkg.name %> - v<%= pkg.version %> - ' + '<%= grunt.template.today("yyyy-mm-dd HH:mm:ss") %>\n\n',
            mangle: {
                except: [ // mangle is true for all else besides the specified exceptions
                    'src/input-d.js',
                    'src/input-e.js',
                    'src/input-f.js'
                ]
            },
            preserveComments: 'some'
        },
        files: 'dest/output.min.js': [ // concatenation, uglification (mangle) with exceptions, block comments preserved, minification and a banner
            'src/input-a.js',
            'src/input-b.js',
            'src/input-c.js',
            'src/input-d.js',
            'src/input-e.js',
            'src/input-f.js'
        ]
    },
    concatenateOnly: {
        options: {
            compress: false,
            mangle: false,
            preserveComments: 'all'
        },
        files: 'dest/output.js': [ // only concatenation
            'src/input-a.js',
            'src/input-b.js',
            'src/input-c.js',
            'src/input-d.js',
            'src/input-e.js',
            'src/input-f.js'
        ]
    }
}

…或者你可以通过组合我上面粘贴的一些设置来完成一项任务,比如使用
选项.mangle.except
对你有利。

我试图避免这种情况,因为它会创建临时文件,我必须在以后使用grunt clean删除这些文件。哇,太棒了。忘记了except选项。你在引导我通过咕噜声,我明白了。:)这个解决方案是完美的。除了一个小问题,由于一个丑陋的JS bug,
compress:false
参数可能无法工作:。
watch: {
    js: {
        files: ['config/*.js', 'app/js/**/*.js'],
        tasks: ['jshint', 'jasmine', 'uglify:concatenateOnly', 'uglify:doAll']
    }
}