📜  如何捆绑Angular应用进行生产?

📅  最后修改于: 2021-05-13 19:04:53             🧑  作者: Mango

介绍
在部署Web应用程序之前,Angular提供了一种在几个CLI命令的帮助下检查Web应用程序行为的方法。通常,ng serve命令用于从本地内存构建,监视和服务应用程序。但是对于部署,通过运行ng build命令可以看到应用程序的行为。

ng服务和ng构建之间的区别

ng serve ng build
The ng serve command is intentionally for fast, local and iterative developments and also for builds, watches and serves the application from a local CLI development server. The ng build command is intentionally for building the apps and deploying the build artifacts.
The command does not generate an output folder. The output folder is – dist/.
The ng serve builds artifacts from memory instead for a faster development experience. The ng build command generates output files just once and doesn’t serve them.

脚步
在执行部署应用程序的步骤之前,请确保尚未在系统中安装Angular CLI,然后运行以下命令。

npm install -g @angular/cli

第一步将是在部署应用程序之前将其捆绑用于生产。

  • 导航到项目目录。
    cd project-folder
  • 在Angular CLI中运行ng build命令
    ng build --prod 

  • 要获取应用程序的预览,请运行以下命令:
    ng serve --prod

    这将启动带有生产文件的本地HTTP服务器。导航到http:// localhost:4200 /以查看该应用程序。
    通过这些步骤,就可以部署应用程序了。

方法
ng build命令将Angular应用编译到给定输出路径下名为dist /的输出目录中。此命令必须在工作目录内执行。 Angular中的应用程序构建器使用webpack构建工具,并在工作区配置文件(angular.json)中指定了配置选项,或者使用了命名的替代配置。当您使用CLI创建项目时,默认情况下会创建一个“生产”配置,您可以通过指定“ configuration="production"--prod="true"选项来使用该配置。

–prod标志激活许多优化标志。其中之一是–aot for Ahead of Time编译。您的组件模板是在构建过程中进行编译的,因此TypeScript可以检测代码中的更多问题。您可以在开发人员模式下进行编译,但是如果要在生成产品之前看到此错误,仍可以激活–aot标志。

dist /文件夹
dist文件夹是build文件夹,其中包含可以在服务器中托管的所有文件和文件夹。
dist文件夹包含JavaScript格式的angular应用程序的已编译代码,以及所需的HTML和CSS文件。
内部dist /文件夹

Folder/File Description
assets The folder contains resources copied from the Angular CLI assets configuration.
index.html index.html file is the entrypoint for the application.
main.[hash].js The file contain bundled application.
polyfill.[hash].bundle.js It contains polyfill dependencies
runtime-[es-version].[hash].bundle.js It contains webpack loader
style.[hash].bundle.css It contains the style definitions

缺点

  • 性能:动态应用程序并非总是能达到理想的效果。复杂的SPA可能会因为大小不便而使用起来不便。
  • 陡峭的学习曲线:由于AngularJS是一种多功能工具,因此完成任何任务总是有不止一种方法。这在工程师之间引起了一些混乱。