簡體   English   中英

應該在生產中使用 create react app 嗎?

[英]Is create react app supposed to be used in production?

我大部分時間都在我所有的 React 項目中使用 CRA。 過去,我只從事開發工作,從未推動生產。 我最近剛剛嘗試將其推向生產環境,而我的項目(我使用 CRA 開發的)的規模非常大,一個非常簡單的文件需要 25 GB。 在做了一些研究之后,我現在知道 CRA 和預裝的 node_modules 真的很笨重而且很大。

那么 CRA 是否真正用於生產,還是使用 babel/webpack 更好? 由於預先構建的東西,有時使用 CRA 進行開發是否更好,但在推向生產時使用 webpack / babel 組合?

謝謝!

在開發或本地機器上,您使用一個集成服務器來為您的 React 應用程序提供服務。 但是當你想部署到生產環境時,你只需要發送 HTML,編譯后的 CSS,以及由你的npm run build命令生成的縮小-uglified javascript,在大多數情況下,CRA 配置它來處理所有事情。

有關更多詳細信息,您可能想看看: https://create-react-app.dev/docs/production-build/

output 應該是幾兆字節,如果不少於 webpack 會縮小你的資產,並為你做一些tree shaking與你在本地開發環境中相比應該減少構建大小

構建后,文件將寫入包含 SPA 入口點的distbuild文件夾( index.html加載初始 React 依賴項 + 您的應用程序構建)。 此文件夾應由 HTTP 服務器提供服務,您可能有 nginx 或任何其他 HTTP 服務器為您執行此操作,或者您可能想使用像VercelNetifly這樣的 PaaS。


請注意,在一些復雜的項目中,可以使用npm run eject命令“彈出”CRA ,這是一種單向操作。 一旦彈出,就不能 go 回來了! .

這將公開您的構建配置和 CRA 從您那里抽象出來的底層“魔法”,以允許更多的定制自由(成本與您預期的一樣)。 這應該明智地使用,正如我所說,在大多數情況下不需要它,因為 CRA 涵蓋了您需要的基礎知識,並且它們還提供了彈出的替代方法,以確保您將其作為最后的手段。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM