這次帶給大家Angular CLI如何實現Build,Angular CLI實作Build的注意事項有哪些,以下就是實戰案例,一起來看一下。
Build.
Build主要會做以下動作:
#編譯專案檔並輸出到某個目錄
Build targets決定了輸出的結果
bundling 打包
- ## 生產環境的build也會進行uglify和tree-shaking(把沒用的程式碼去掉)
ng build.##可以先看幫助:
ng build --help
針對開發環境, 就是用命令ng build.
預設情況下, 它的輸出目錄在.angular-cli.json檔案裡ourDir屬性配置的, 預設是/dist目錄.
build之後會看見dist裡面有這些檔案:
- #inline.bundle.js 這是webpack的執行時間.
- #main.bundle.js 就是程式碼.
- pollyfills.bundle.js 就是瀏覽器的Pollyfills.
- styles. bundle.js 樣式
- vendor.bundle.js 是angular和第三方函式庫
- 可以使用source-map-explorer來分析依賴,並且查看哪些模組和類別在bundle裡面.
首先修改上一個範例中的程式碼:
執行ng build:
可以看到產生了這些檔案.
把dist裡面的index.html格式化一下看看:
#可以看到它引用了產生的5個js檔案.
開啟main.bundle.js可以看到我寫的程式碼:
#下面執行程式: ng serve -o:
#可以看到在ng serve的時候, 載入了上述的檔案.
因為ng build是開發時的build, 所以沒有做任何優化, 文件挺大的.
這時看一下文件目錄, 並沒有dist目錄:
那麼這些檔案是怎麼被serve的呢?
這是因為, 這時候webpack是在記憶體中進行的serve.
下面使用source-map-explorer進行分析, 先安裝它:
npm install --save-dev source-map-explorer
然後執行ng build, 再執行:
.\node_modules\.bin\source-map-explorer dist\main.bundle.js
結果會產生這個圖形:
再看看vendor.bundle的狀況:
.\node_modules\.bin\source-map-explorer dist\vendor.bundle.js
這裡面東西就比較多了.
Environment是指採用哪一個環境檔案:
#而Targets則是用來決定專案檔案是如何被最佳化的.
看一下開發和生產build的對比.
ng build |
ng build --prod |
|
Environment |
environment.ts |
environment..prod.ts |
#快取 |
只快取css裡引用的圖片 |
所有build的檔案 |
source maps |
#產生 |
不產生 |
如何處理css |
全域css輸出到js檔案 |
產生的是css檔 |
uglify |
#不 |
是 |
Tree-Shaking |
#不去掉無用程式碼 |
##去掉無用程式碼 |
AOT | 是 | |
##Bundling打包 | 是 | |
#--build-optimizer | 否 | |
#--named-chunks | #是 | |
--output-hashing | media |
下面命令都是针对开发时的build, 它们的作用是一样的:
ng build ng build --dev ng build --dev -e=dev ng build --target=development --environment=dev
下面则是生产build:
ng build --prod ng build --prod -e=prod ng build --target=production --environment=prod
其它常用的参数还有:
--sourcemap -sm 生成source map
--aot Ahead of Time编译
--watch -w Watch并rebuild
--environment -e Build环境
--target -t Build target
--dev 表示dev env和target
--prod 表示prod env和target
Production Build.
先使用--aot:
ng build --aot
使用aot之后可以看到 vendor.bundle的大小降了很多, 只有1.5m左右了.
执行aot会去掉一些程序执行不需要的代码, 例如angular的compiler这时就不在build输出的文件里了(可以使用source-map-explorer查看).
试试生产环境:
ng build --prod
可以看到所有的文件都非常小了, 并且没有vendor了(因为prod下--build-optimizer起作用所以vendor没有了, 但可以使用--vendor-chunk true给弄出来).
Serve.
ng serve. 已经一直在用了, 下面看看它常用的参数:
--open -o 打开默认浏览器
--port -p 端口
--live-reload -lr 发生变化时重新加载网页(默认开启的)
--ssl 使用https
--proxy-config -pc 代理配置
--prod 在内存中serve 生产模式build的文件
试试 --prod:
ng serve --prod
通过文件大小可以看出确实是prod build的.
ng eject.
为项目生成webpack配置和脚本.
执行该命令试试:
看看有哪些变化:
.angular-cli.json:
package.json:
命令脚本都变了
还多出来一个webpack.config.js文件:
为什么要这么做呢?
可以对项目更深入的配置....
这时运行程序就是 npm start了.
我还是把reject恢复回去吧, 使用git来恢复吧.
如果需要Serve 其他js/css/assets文件:
放在.angular-cli.json就行, 例如jquery就应该放在scripts里面.
相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!
推荐阅读:
以上是Angular CLI如何實作Build的詳細內容。更多資訊請關注PHP中文網其他相關文章!

JavaScript框架的強大之處在於簡化開發、提升用戶體驗和應用性能。選擇框架時應考慮:1.項目規模和復雜度,2.團隊經驗,3.生態系統和社區支持。

引言我知道你可能會覺得奇怪,JavaScript、C 和瀏覽器之間到底有什麼關係?它們之間看似毫無關聯,但實際上,它們在現代網絡開發中扮演著非常重要的角色。今天我們就來深入探討一下這三者之間的緊密聯繫。通過這篇文章,你將了解到JavaScript如何在瀏覽器中運行,C 在瀏覽器引擎中的作用,以及它們如何共同推動網頁的渲染和交互。 JavaScript與瀏覽器的關係我們都知道,JavaScript是前端開發的核心語言,它直接在瀏覽器中運行,讓網頁變得生動有趣。你是否曾經想過,為什麼JavaScr

Node.js擅長於高效I/O,這在很大程度上要歸功於流。 流媒體匯總處理數據,避免內存過載 - 大型文件,網絡任務和實時應用程序的理想。將流與打字稿的類型安全結合起來創建POWE

Python和JavaScript在性能和效率方面的差異主要體現在:1)Python作為解釋型語言,運行速度較慢,但開發效率高,適合快速原型開發;2)JavaScript在瀏覽器中受限於單線程,但在Node.js中可利用多線程和異步I/O提升性能,兩者在實際項目中各有優勢。

JavaScript起源於1995年,由布蘭登·艾克創造,實現語言為C語言。 1.C語言為JavaScript提供了高性能和系統級編程能力。 2.JavaScript的內存管理和性能優化依賴於C語言。 3.C語言的跨平台特性幫助JavaScript在不同操作系統上高效運行。

JavaScript在瀏覽器和Node.js環境中運行,依賴JavaScript引擎解析和執行代碼。 1)解析階段生成抽象語法樹(AST);2)編譯階段將AST轉換為字節碼或機器碼;3)執行階段執行編譯後的代碼。

Python和JavaScript的未來趨勢包括:1.Python將鞏固在科學計算和AI領域的地位,2.JavaScript將推動Web技術發展,3.跨平台開發將成為熱門,4.性能優化將是重點。兩者都將繼續在各自領域擴展應用場景,並在性能上有更多突破。

Python和JavaScript在開發環境上的選擇都很重要。 1)Python的開發環境包括PyCharm、JupyterNotebook和Anaconda,適合數據科學和快速原型開發。 2)JavaScript的開發環境包括Node.js、VSCode和Webpack,適用於前端和後端開發。根據項目需求選擇合適的工具可以提高開發效率和項目成功率。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

WebStorm Mac版
好用的JavaScript開發工具

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

Atom編輯器mac版下載
最受歡迎的的開源編輯器