Angular應(yīng)用打包和部署實(shí)現(xiàn)過程詳解
應(yīng)用打包
對 Angular 應(yīng)用打包,只需要執(zhí)行下面的命令即可:
ng build
命令輸出結(jié)果如下:
chunk {main} main.js, main.js.map (main) 22.4 kB [initial] [rendered]
chunk {polyfills} polyfills.js, polyfills.js.map (polyfills) 141 kB [initial] [rendered]
chunk {runtime} runtime.js, runtime.js.map (runtime) 6.15 kB [entry] [rendered]
chunk {styles} styles.js, styles.js.map (styles) 12.5 kB [initial] [rendered]
chunk {vendor} vendor.js, vendor.js.map (vendor) 2.22 MB [initial] [rendered]
Date: 2022-06-05T08:13:29.036Z - Hash: 320a98b795509f74dda8 - Time: 6897ms
構(gòu)建過程會(huì)啟動(dòng) Angular 編譯器,主要收集應(yīng)用中的所有 TypeScript 源文件,轉(zhuǎn)換為 JavaScript 文件。在默認(rèn)配置下,編譯器會(huì)將 JavaScript 文件輸出到 dist
文件夾。
開發(fā)模式構(gòu)建
輸出文件夾主要包含下列文件:
- favicon.ico: 應(yīng)用的圖標(biāo),如顯示在瀏覽器標(biāo)題欄上
- index.html: 應(yīng)用的主 HTML 文件
- main.js: 包含了開發(fā)的應(yīng)用代碼
- polyfills.js: 提供遺留瀏覽器的兼容支持
- runtime.js: 包含了 Angular CLI 相關(guān)的代碼,能夠運(yùn)行其他文件
- styles.js: 包含了應(yīng)用的全局樣式
- vendor.js: 包含了 Angular 框架和其他第三方類庫
此外,dist
文件夾還包括了 .map
結(jié)尾的文件,主要用于調(diào)試目的。
在構(gòu)建生成的 index.html 文件中,引用了編譯器輸出的 JavaScript 文件:
<!doctype html> <html lang=“en”> <head> <meta charset="utf-8”> <title>BookStore</title> <base href=“/“> <meta name="viewport" content="width=device-width, initial-scale=1”> <link rel="icon" type="image/x-icon" href=“favicon.ico”> </head> <body> <app-root></app-root> <script src="runtime.js" defer></script> <script src="polyfills.js" defer></script> <script src="styles.js" defer></script> <script src="vendor.js" defer></script> <script src="main.js" defer></script> </body> </html>
Angular CLI 構(gòu)建命令可以在兩種模式下運(yùn)行: 開發(fā)模式和生產(chǎn)模式。 默認(rèn)使用開發(fā)模式,如直接運(yùn)行 ng build
。如果選擇生產(chǎn)模式,需要添加命令選項(xiàng):
ng build --configuration=production
或者使用快捷命令選項(xiàng):
ng build —prod
使用生產(chǎn)模式構(gòu)建應(yīng)用,輸出文件如下所示:
生產(chǎn)模式構(gòu)建
與使用開發(fā)模式構(gòu)建應(yīng)用不同的是,輸出的文件不再包含 .map
文件,不需要對生產(chǎn)代碼進(jìn)行調(diào)試。另外,輸出的 JavaScript 文件和 CSS 文件,都包含了一個(gè)哈希值,可以讓瀏覽器緩存的文件盡快失效,讓新文件發(fā)揮作用。
限制包大小
隨著應(yīng)用功能的增多,構(gòu)建應(yīng)用的輸出文件會(huì)越來越大。我們可以在 angular.json
文件中增加一些配置項(xiàng),限制應(yīng)用包文件的大小。例如:
"budgets": [ { "type": “initial”, "maximumWarning": “2mb”, "maximumError": “5mb” }, { "type": “anyComponentStyle”, "maximumWarning": “6kb”, "maximumError": “10kb” } ]
上述配置,都是 Angular CLI 命令創(chuàng)建的默認(rèn)配置。我們可以自定義不同類型的配置,也可以按百分比限制文件大小。
更多的配置選項(xiàng),可以參考官方文檔。
部署應(yīng)用
部署一個(gè) Angular 應(yīng)用是簡單的,只需要把輸出文件夾 dist
的全部文件,拷貝到服務(wù)器的相應(yīng)路徑下即可。
如果你想部署到另外一個(gè)目錄下面,而非根目錄,可以使用 ng buld
命令的 --base-href
選項(xiàng),如下:
ng build --prod --base-href=/myapp/
上述命令會(huì)改變 index.html
文件的 base
標(biāo)簽的值:
<base href="/myapp”>
以上就是Angular應(yīng)用打包和部署實(shí)現(xiàn)過程詳解的詳細(xì)內(nèi)容,更多關(guān)于Angular 應(yīng)用打包部署的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
使用AngularJS對表單提交內(nèi)容進(jìn)行驗(yàn)證的操作方法
AngularJS是一款優(yōu)秀的前端JS框架,已經(jīng)被用于Google的多款產(chǎn)品當(dāng)中。下面通過本文給大家分享使用AngularJS對表單提交內(nèi)容進(jìn)行驗(yàn)證的操作方法,需要的的朋友參考下吧2017-07-07基于angular2 的 http服務(wù)封裝的實(shí)例代碼
這篇文章主要介紹了基于angular2 的 http服務(wù)封裝實(shí)例代碼,2017-06-06ionic3實(shí)戰(zhàn)教程之隨機(jī)布局瀑布流的實(shí)現(xiàn)方法
這篇文章主要給大家介紹了關(guān)于ionic3實(shí)戰(zhàn)教程之隨機(jī)布局瀑布流的實(shí)現(xiàn)方法,文中通過示例代碼和圖文介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2017-12-12詳細(xì)AngularJs4的圖片剪裁組件的實(shí)例
本篇文章主要介紹了詳細(xì)AngularJs4的圖片剪裁組件的實(shí)例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-07-07angular 未登錄狀態(tài)攔截路由跳轉(zhuǎn)的方法
今天小編就為大家分享一篇angular 未登錄狀態(tài)攔截路由跳轉(zhuǎn)的方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-10-10Angular2學(xué)習(xí)教程之ng中變更檢測問題詳解
這篇文章主要給大家介紹了Angular2學(xué)習(xí)教程之ng中變更檢測問題的相關(guān)資料,文中介紹的非常詳細(xì),對大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起看看吧。2017-05-05