【问题标题】:How to use grunt-contrib-uglify to gzip the js files also?如何使用 grunt-contrib-uglify 来压缩 js 文件?
【发布时间】:2013-11-04 20:21:56
【问题描述】:

我正在执行一项繁重的任务:

uglify: {
    options: {
        report: 'gzip'
    },
    all: {
        expand: true,
        flatten: true,
        cwd: 'js/',
        src: ['*.js', '!*.min.js'],
        dest: 'js/min',
        ext: '.min.js'
    }

}

文件被压缩到一个文件中,同时运行报告选项

options: {
    report: 'gzip'
}

我看到压缩后文件会明显变小,但输出文件未压缩,它们的大小与“缩小”报告一致。

所以问题是,我如何配置 uglify 来压缩文件。还是这是针对不同任务的任务?

【问题讨论】:

  • 我在考虑使用 grunt-contrib-uglify 来压缩我的 js 文件,但后来我意识到我还有很多东西要压缩,所以我将压缩过程交给了 grunt-contrib-compress @987654321 @

标签: javascript gruntjs grunt-contrib-uglify


【解决方案1】:

gzipping 是网络服务器用来打包静态资产的一种技术,有助于将传输数据的大小减少一半或更多。 gzip 报告只是让您知道该技术将节省多少,但它显然无法压缩超出正常缩小范围的文件。如果您有兴趣,这篇文章有一些进一步的信息:

http://betterexplained.com/articles/how-to-optimize-your-site-with-gzip-compression/

我个人会关闭 gzip 报告,因为它表现不佳;也许只在准备好部署时保存它。

【讨论】:

  • 是的,我确实关闭了它,因为它需要一段时间,我认为既然你可以报告它,有一种方法可以打开它......
  • 如果你想在你的服务器上启用 gzipping 你需要使用正确的 gzip 包,具体取决于你使用的是什么(如果你使用 nginx 或阿帕奇)。然后服务器可以自动 gzip 您指定的资产类型。但是让我重申一下;你不能通过 Grunt 压缩。 :)
  • 检查!感谢您的回答!
  • 您实际上可以使用grunt-contrib-compress 压缩文件,但您需要配置服务器以返回预压缩文件。
【解决方案2】:

如果您将文件/资产托管在 S3 上,您需要手动 gzip 文件并将响应标头“encode-type”设置为“gzip”。所以我需要这个功能以及同步文件或至少部署文件的繁重任务。

【讨论】:

  • 完全同意; S3 也是我的用例。在 S3 API 调用中将“内容编码”的元数据设置为 gzip 非常容易。我刚从 Grunt 开始,很想知道有一种方法可以在 gzip 压缩后上传到 S3,即使这意味着要使用自定义 java -jar
  • 如果您从云端提供文件,现在可以选择自动压缩文件。我获得了大约 80% 的压缩率。干杯!
【解决方案3】:

您可以将grunt-contrib-compress 添加到您的工作流程中,并将您的网络服务器配置为使用 gzip 压缩版本。 在 nginx 上将打开 gzip_static

【讨论】:

    猜你喜欢
    • 2013-12-30
    • 2018-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多