React 應用輕量化(一)Source Map

作者: Calpa Liu
字數:392
出版:2017 年 8 月 27 日
create-react-app 提供了很方便的創建 React 應用途徑。它已經把 webpack, Babel, Autoprefixer, ESLint, Jest 等常用工具打包進去。可以說是一個非常方便,好用的製造 React 應用工具。當我打算把包裝好的檔案推上去的時候,我卻發現打包之後的檔案大小有點大,因此我就開始優化這個網頁應用了。第一點我優化的地方就是 Source Map。

如果你細心看 README.md 的話,你會發現下面這一句,它把 Source Map 也打包進去。

A build script to bundle JS, CSS, and images for production, with sourcemaps.

在測試環境中,我們可以透過 sourcemap 找到 bundle 過後的對應項目組件,這個是蠻方便的。

但是,在生產環境中,如果有 sourcemap 的話,就會直接暴露項目中的架構,以及檔案,同時會增加網站大小。

解決方法

快速方法

排除 *.map,避免部署 sourcemap 到上面。

這個方法並不能從根源解決問題,因為產生 sourcemap 需時較長,另外,也會產生一個不需要的檔案大小略大的 sourcemap 檔案。

徹底方法

  1. npm run eject,如果你沒有 Eject 過的話。

Eject 是一個特殊命令,把 create-react-app 的懶人包變成自定義的項目。在 Eject 之前,請想清楚你是否需要掌握項目的每一個細節。

對應日新月異的產品需求以及開發需求,我選擇 Eject。比如說 SCSS,CSS 模組化。

  1. 用你喜歡的文字編輯器 或 IDE 打開 /config/webpack.config.prod.js

  2. 刪除或注釋第五十三行 devtool: 'source-map'

在上面你可以看到這樣的注釋:

// We generate sourcemaps in production. This is slow but gives good results. // You can exclude the *.map files from the build during deployment.

它這裡寫就是說產生 sourcemap 會給出好的結果,雖然產生時間會更加長。

另外,你可以排除 *.map,避免部署 Source Map 到上面。

參考資料

  1. create-react-app README
  2. Disable webpack production sourcemaps
關於 Calpa

Calpa 擅長使用 TypeScriptReact.jsVue.js 建立 Responsive Website。

他積極參與開源社區,曾在 2019 年的香港開源大會上擔任講者,提供工作經驗和見解。此外,他也在 GitHub 上公開分享個人博客程式碼,已獲得超過 300 顆星星和 60 個分支的支持。

他熱愛學習新技術,並樂意分享經驗。他相信,唯有不斷學習才能跟上快速演變的技術環境。

熱門文章

最新文章

圖片管理中心
管理圖片資源
IP 查詢
快速查詢和定位 IP 地址的地理位置和相關信息
Python 運行器
無需後端、無需登入,只需打開瀏覽器即可運行 Python 代碼(由 Pyodide 提供支持)
封面圖生成器
自動創建適合各種平台的文章封面圖
原作(青山剛昌)產生器
一鍵創建原作(青山剛昌)的封面圖
日本色彩
探索和使用傳統日本色彩
部落格內容洞察儀表板
以視覺化儀表板方式追蹤文章成效、分享熱度與分類分布,協助創作者掌握內容表現。
蒙特卡羅估算 π
使用蒙特卡羅方法演示 π 值的估算過程
LLM
使用 LLM 模型進行聊天
活動圖生成器
一鍵創建活動的封面圖
Wagmi Card
一鍵創建 Wagmi 的封面圖
Facebook Quote
Facebook Quote
Music Macro Language (MML) Studio
用程式語法編寫旋律,用音符構築想像
Blurhash
一鍵創建 Blurhash
文字分類器
使用 MediaPipe TextClassifier 分類文字
前端工程師免費工具資源
前端工程師免費工具資源
後端工程師免費工具資源
後端工程師免費工具資源
全端工程師免費工具資源
全端工程師免費工具資源
Web3 工程師免費工具資源
Web3 工程師免費工具資源
紫微斗數排盤系統|結合 AI 的命盤性格與事業財務分析生成器
紫微斗數排盤工具,輸入生日與時辰,自動生成完整命盤分析提示(Prompt)。結合最專業紫微理論與 AI 助力,助你深入解析性格、事業、財務與人際課題。免費使用,適合命理師及紫微愛好者。
PixAI Prompt 組合器|快速打造可用於 AI 繪圖的語言拼圖
使用 PixAI 卻不會寫 prompt?這個工具幫你一鍵組裝角色、表情、風格語彙,輸出高品質繪圖提示語句(Prompt),可直接貼入 PixAI 使用。適合插畫師、創作者、AI 新手與 VTuber 角色開發者。