6

我需要使用 Grunt/grunt-contrib-uglify 缩小一组 JSON 文件(语言文件):

grunt.initConfig({
    pkg: grunt.file.readJSON('package.json'),
    uglify: {
        build: {
            src: 'src/main/app/resources/locales/*/*.json',
            dest: 'target/resources/locales/*/*.json'
        }
    }
});

我得到的是:

Files: src/main/app/resources/locales/en/messages.json -> target/*/*.json
Minifying with UglifyJS...Reading src/main/app/resources/locales/en/messages.json...OK
>> Uglifying source "src/main/app/resources/locales/en/messages.json" failed.
Warning: Uglification failed. Use --force to continue.

我开始怀疑,uglify 是否适用于纯 JSON 文件,还是仅适用于 JavaScript 源文件?JSON 文件的格式肯定是正确的,它以非最小化形式在应用程序中运行。

4

2 回答 2

11

grunt-json-minify如user2806181的回答所示)工作正常(顺便说一句,谢谢),但它只修改文件。受到答案的启发,我发现了一个更高级的方法:grunt-minjson

grunt.initConfig({
    pkg: grunt.file.readJSON('package.json'),
    minjson: {
        build: {
            files: { 
                'target/locales/en/messages.json':
                    'resource/locales/en/messages.json'
            }
        }
    }
});
于 2013-10-01T06:59:41.203 回答
2

我猜 UglifyJS 不适用于纯 JSON,因为它不是有效的 javascript。

看看这个链接:https ://github.com/mishoo/UglifyJS2/issues/156

但是您可以使用几个 grunt-plugins,例如:https ://npmjs.org/package/grunt-json-minify

于 2013-09-30T13:21:29.927 回答