1

我正在使用 Gzip (style.css.gz) 和 Brotli (style.css.br) 在我的 Grunt 构建过程中预压缩静态资产(例如 style.css)。因为我找不到更好的教程或示例,所以我为每个要压缩的扩展添加了一个包含数十个子任务的压缩任务。这适用于 Nginxgzip_static on;brotli_static on;指令。

到目前为止我所拥有的:

grunt.registerTask('default', [
        'compress:jsgz',
        'compress:jsbr',
        'compress:cssgz',
        'compress:cssbr',
        'compress:mapgz',
        'compress:mapbr',
        'compress:ttfgz',
        'compress:ttfbr',
        'compress:eotgz',
        'compress:eotbr',
        'compress:otfgz',
        'compress:otfbr',
        'compress:svggz',
        'compress:svgbr',
        'compress:woffgz',
        'compress:woffbr',
        'compress:woff2gz'
        'compress:woff2br'
        ...

一个示例子任务如下所示:

compress: {
          jsgz: {
            options: {
              mode: 'gzip',
              level: 6
            },
            expand: true,
            cwd: 'wordpress/',
            dest: 'wordpress/',
            extDot: 'last',
            src: ['**/*.js'],
            ext: '.js.gz'
          },
          ...

虽然这很好用,但我实际上更喜欢只有 2 个子任务,一个用于 gzip,一个用于 brotli:

gzip: {
    options: {
      mode: 'gzip',
      level: 6
    },
    expand: true,
    cwd: 'wordpress/',
    dest: 'wordpress/',
    extDot: 'last',
    src: ['**/*.(js|css|map|ttf|eot|otf|svg|woff|woof2|xml|txt|...)'],
    ext: '.???.gz'
},
brotli: {...}

ext 参数是否允许占位符?动态的东西?我能以某种方式实现吗?谢谢你的帮助。

4

0 回答 0