只是想了解如何Angular
在幕后构建和运行?
以下是我迄今所理解的内容.想知道我是否错过了什么.
Angular的构建方式
在使用我们的角度应用程序编码后TypeScript
,我们使用Angular CLI
Command来构建应用程序.
ng build
command将应用程序编译到输出目录中,构建工件将存储在dist/
目录中.
内部流程
1. Angular CLI
运行Webpack
以构建和捆绑所有JavaScript和CSS
代码.
2. 依次Webpack
调用TypeScript
Loaders,它们获取.ts
角项目中的所有文件,然后将它们转换JavaScript
为.js
文件,浏览器可以理解.
这篇文章说Angular
有两个编译器:
查看编译器
模块编译器
有关构建的问题
调用构建过程的顺序是什么?
Angular CLI First调用在Typescript =>中编写的angular内置编译器,然后调用Typescript Transpiler =>然后调用Webpack进行捆绑并存储在dist/
目录中.
Angular如何运行
构建完成后,我们所有应用程序的组件,服务,模块等都会转换为Javascript .js
文件,用于在浏览器中运行角度应用程序.
当您使用AppComponent
类引导(在main.ts中)时,Angular <app-root>
在其中index.html
查找a ,找到它,实例化AppComponent的实例,并将其呈现在<app-root>
标记内.
当用户在应用程序中移动时,Angular会创建,更新和销毁组件.
关于运行的问题
尽管main.ts
在上面的Statement中用于解释引导过程,但是不是角度应用程序是自引导还是使用Javascript .js
文件启动?
是不是所有上述语句都是使用 …
我一直在使用巴贝尔有一段时间了,而我一直的印象是,巴贝尔是下transpiler转换器ES6我和ES7的JavaScript到ES5的JavaScript,因为我的假设是,你可以在技术上治疗ES5和ES6作为两种不同的语言.
然而,我不禁注意到,巴贝尔的网站标题描述它作为一个编译器,我相信这是东西从一个非常不同的transpiler.
Babel是一个转换器还是编译器,或者可能提供两种选择?或者网站的标题是不正确的?
披露:我知道这听起来像是一个非常迂腐的问题,但我正在编写有关Babel的文档,我想确保我的描述准确无误
我正在潜入角度4,我试图理解编译.我已经读过AOT和JIT都将TypeScript编译为JavaScript,无论是服务器端还是客户端.如果我在使用Webpack和grunt构建它时编译它并部署那个缩小的javascript,AOT和JIT是如何进入图片的?
我一直在使用tsc,但是看到angular.io强调了ngc。我想知道这两者是否有优势,还是我应该选择一个。提前致谢。
angular ×3
compilation ×2
typescript ×2
angular-cli ×1
babel ×1
build ×1
ecmascript-6 ×1
javascript ×1
tsc ×1