Angular4 build - gzip缺失

时间:2017-03-24 17:39:38

标签: angular angular-cli

当我运行ng build -prod --aot时,只生成.js文件。

输出:

chunk    {0} polyfills.a2079361c5ff6d4e321e.bundle.js (polyfills) 285 kB {5} [initial] [rendered]
chunk    {1} main.d19edcafc399a0af8c0b.bundle.js (main) 2.33 MB {4} [initial] [rendered]
chunk    {2} scripts.22988bec4cd6ce344e9f.bundle.js (scripts) 973 kB {5} [initial] [rendered]
chunk    {3} styles.99705fb1bf9015185149.bundle.css (styles) 705 bytes {5} [initial] [rendered]
chunk    {4} vendor.377addf0a4997a085d42.bundle.js (vendor) 4.71 MB [initial] [rendered]
chunk    {5} inline.911ff25c95430bbf496e.bundle.js (inline) 0 bytes [entry] [rendered]

我的问题是:

  1. .gz文件怎么了?
  2. 如何从express提供gzip文件?

1 个答案:

答案 0 :(得分:8)

  1. 正如1.0.0-beta.32 (2017-02-17)'s BREAKING CHANGES List所述, 自1.0.0-beta.32

      

    @ angular / cli:生产版本不再生成压缩输出(.gz)。

    也是,因为1.0.0-beta.28

      

    - 在--prod

    中默认为true

    因此,在运行--aot

    时,您无需添加ng build -prod标记

    为了获取gz文件,您可以通过运行ng eject来弹出您的应用,这将公开您的 webpack.config.js 文件 可以使用 COMPRESSION WEBPACK PLUGIN

    const CompressionPlugin = require("compression-webpack-plugin"); 
    . . . 
    new CompressionPlugin({})
    

    (再次'取消'你的应用程序'看到我的answer

  2. 要从express提供gz文件,您可以使用 Node JS compression middleware

    var compression = require('compression')
    var express = require('express')
    
    var app = express()
    
    // compress all responses
    app.use(compression())