angular - 如何为生产捆绑 Angular 应用程序

标签 angular webpack systemjs angular-cli

捆绑 Angular(版本 2、4、6 等)以在实时网络服务器上生产的最佳方法是什么。

请在答案中包含 Angular 版本,以便我们可以在它移至更高版本时更好地跟踪。

最佳答案

2 到 14 (TypeScript) 与 Angular CLI

一次性设置

  • npm install -g @angular/cli
  • ng new projectFolder 创建一个新应用

捆绑步骤

  • ng build(当目录为 projectFolder 时在命令行中运行)。

    flag prod 生产包现在是默认设置(如果需要,请参阅 Angular documentation 自定义它)。

  • 使用 Brotli compression 压缩使用以下命令的资源

    for i in dist/*/*;做 brotli $i;完成

bundle 默认生成到 projectFolder/dist(/$projectFolder for v6+)**

输出

具有 Angular 14.0.2 的大小,带有 CLI 14.0.2 和没有 Angular 路由的选项 CSS

  • dist/main.[hash].js 您的应用程序捆绑 [大小:118 KB 用于新的 Angular CLI 应用程序为空,36 KB 压缩]。
  • dist/polyfill-[es-version].[hash].bundle.js 绑定(bind)的 polyfill 依赖项(@angular、RxJS...)[ 大小:34 KB 用于新的 Angular CLI 应用程序空,11 KB 压缩]。
  • dist/index.html 您的应用程序的入口点。
  • dist/runtime.[hash].bundle.js webpack 加载器
  • dist/style.[hash].bundle.css 样式定义
  • dist/assets 从 Angular CLI Assets 配置复制的资源

部署

您可以使用启动本地 HTTP 服务器的 ng serve --prod 命令获取应用程序的预览,以便可以使用 http 访问包含生产文件的应用程序//本地主机:4200。 将其用于生产用途是不安全的。

对于生产用途,您必须将 dist 文件夹中的所有文件部署到您选择的 HTTP 服务器中。

关于angular - 如何为生产捆绑 Angular 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37631098/

相关文章:

css - 无法在 react 中导入css文件

javascript - Angular中动态内容的国际化?

Angular Material 拖放 - 不同的对象类型

node.js - 无法使用 webpack 加载 spfx 解决方案的 sp-loader

node.js - 用于 NodeJS 的 WebPack 4 SplitChunksPlugin

Angular2、Gulp、SystemJS -> 默认扩展问题

javascript - 为什么我不能使用 SystemJS 直接从 node_modules 导入?

angular - 在 Angular 2 TypeScript 应用程序中加载 Electron 模块

angular - 使用 ng-template 插入响应式表单输入(从组件外部)

javascript - 如何让 Jasmine 的 spyOnProperty 工作?