❶ FastAPI-Amis-Admin: 一個擁有高性能,高效率,易拓展的fastapi管理後台框架
fastapi-amis-admin是一個擁有高性能,高效率,易拓展的fastapi管純慎理後台框架. 啟發自Django-Admin,並且擁有不遜色於Django-Admin的強大功能.
fastapi-amis-admin 是一個基於 fastapi + amis 開發的高性能並且高效率 web-admin 框架,使用 Python 3.6+ 並基於標準的 Python 類型提示。
fastapi-amis-admin 開發的初衷是為了完善 fastapi 應用生態, 為 fastapi web應用程序快速生成一個可視化管理後台.
fastapi-amis-admin 遵循 Apache2.0 協議免費開源, 但是為了更好的長期運營與維護此項目, fastapi-amis-admin 非常希望能夠得到大家的贊助與支持.
fastapi-amis-admin 由三部分核心模塊做鍵敬組成,其亮激中 amis , fastapi-sqlmodel-crud 可作為獨立模塊單獨使用, amis_admin 基於前者共同構建.
❷ 我們還能在哪些方面進行webpack性能優化
Bigo前端組計算平台前端組基於amis框架,參考之前的文章:https%3A%2F%2Fgithub.com%2Fbigo-frontend%2Fblog%2Fissues%2F17 ;有很好的研發效率提升,但是構建速度卻很慢,亟需進行優化。優化之後達到了將webpack構建速度提升80%左右的一個成績,以下是優化前後的對比
團隊做了3件事情來達到這凱臘樣的一個效果:
基於這次優化做了功課,看了一些資料,看看還有哪些可以優化的地方。
官網的定義:
webpack is a static mole bundler for modern JavaScript applications. When webpack processes your application, it internally builds a dependency graph which maps every mole your project needs and generates one or more bundles.
也就是說 webpack 是一個用於現代 JavaScript 應用程序的靜態模塊打包工具,從入口出發,找到入口文件所有的依賴,生成瀏覽器可以用的bundle文件。webpack的出現使得前端的工程化更加地豐富。從webpack在2013的第一次release(v1.0.0-beta2)開始,至今已經有8、9年的 歷史 了,是一個相當成熟的工具,其生態也比較完善,所以前端圈用webpack也是鉛差非常地廣泛。
盡量用較新的版本,新版本相較之前都會有一定的性能提升和優化,包括Node和Webpack。要注意的是 Node.js v8.9.10 - v9.11.1 ES6的 Set 和 Map 會有性能回退問題,現在LTS的node已經是 v14.16.0 ,所以假設 Node 版本已經較新,並且用的是 WP4 ( webpack4 )。目前還不建議對求穩的或者已經很龐大的項目立即升級到 WP5 ,其一是因為webpack生態裡面並不一定所有的插件都能跟的上最新的版本,可能會出現兼容性的問題;其二由於webpack5還並未被廣泛地應用,到新版本的穩定和成熟還是需要一定的時間,為避免不必要的bug,建議暫時使用 webpack4 。
對於開發者來說,每次在build的時候不希望花費較長的時間,優化構建速度能夠減少開發成本;對於用戶而言,優化bundle文件的數量和大小能減少用戶的流失率,提升用戶體驗。所以webpack的性能優化是一個非常關鍵的技術手段。
webpack構建大概可分為 loader解析 -> 依賴搜索 -> 打包 等三個階段,就這三個階段我們分別展開闡述如何去優化。
loader解析:
依賴搜索:
打包: Smaller = Faster
當然需要在 index.html 裡面引入cdn依賴,否則在runtime無法找到相應的模塊: 。
開發環境* *:** 同樣地,生產環境有些配置也不適用於開發環境,比如 TerserPlugin 就不需要,因為在開發環境中壓縮代碼是沒有意義的;devTools的最佳實踐是 eval-cheap-mole-source-map ,我現在的項目比較輕量,但是也能看出對比:
雖然是不到1000ms的差距,蒼蠅肉也是肉不是?而且將來代碼量越來越龐大的時候,差距就更明顯了。
當然還有其他的可以優化的方法,比如使用ES mole,能更好地利用webpack的tree shaking功能;Dll,為更改不頻繁的代碼生成單獨的編譯結果,但卻是一個配置比較復雜的過程;還有對圖片的壓縮等等。以上是對於webpack4性能優化基本的配置,期待webpack5成熟穩定的那槐孫皮一天。