Angular 构建 - 缺少 gzip

2024-04-10

当我跑步时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. 如上所述1.0.0-beta.32 (2017-02-17) 的重大变更列表 https://github.com/angular/angular-cli/blob/ed5f47dc22d5eb4a5d4b4ae2c8f7cb0ec1a999f3/CHANGELOG.md#breaking-changes-1, 自 1.0.0-beta.32 起

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

    还有,自从1.0.0-beta.28 https://github.com/angular/angular-cli/blob/ed5f47dc22d5eb4a5d4b4ae2c8f7cb0ec1a999f3/CHANGELOG.md#breaking-changes-3,

    --prod 中的 --aot 默认为 true

    所以,你不需要添加--aot运行时标记ng build -prod

    为了取回 gz 文件,您可以通过运行来弹出您的应用程序ng eject这会暴露你的webpack.config.js文件,你在哪里 可以使用压缩 WebPack 插件 https://github.com/webpack-contrib/compression-webpack-plugin:

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

    (要再次“取消弹出”您的应用程序,请参阅我的answer https://stackoverflow.com/questions/42984558/how-to-undo-angular-2-cli-ng-eject/43026220#43026220)

  2. 为了从 Express 提供 gz 文件,您可以使用节点JS 压缩中间件 http://expressjs.com/en/resources/middleware/compression.html:

    var compression = require('compression')
    var express = require('express')
    
    var app = express()
    
    // compress all responses
    app.use(compression())
    
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Angular 构建 - 缺少 gzip 的相关文章

随机推荐