」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 開發工具不是必需的

開發工具不是必需的

發佈於2024-11-08
瀏覽:278

Devtool is not necessary

幾個月前我正在開發一個前端專案。該專案是一個微前端,旨在整合到遺留儀表板上。

採用微前端方法的原因是為了降低儀表板上的複雜度。我對這個挑戰感到興奮並投入其中。

我使用 webpack、react 和 typescript 設定微前端。我使用 chakra ui 作為 CSS-IN-JS 框架,使用 axios 進行 API 集成,一切正常。然而,該專案的建置大小約為 14mb。對微前端來說,這個數字大得離譜。這導致整合它的儀表板中的頁面響應非常緩慢。因此,我面臨著優化建置的新挑戰。

我認為構建是如此之大,因為我使用了 CSS-IN-JS 框架來進行樣式設定。所以我將整個程式碼庫從 chakra-ui 重構為 sass。你猜怎麼著,建置大小從 14mb 增加到大約 21mb ??。

那時我才知道問題不在於 css 函式庫或程式碼,而是 webpack 配置。我開始對 webpack 配置進行大量的試驗和錯誤。然後我發現,當我刪除 devtool 時,建置大小從 14mb 變成大約 600kb。然後我查了關於devtool的webpack文件。我意識到這不是強制性的。更多資訊在這裡:.

這是我的 webpack 配置的預覽

module.exports = merge(common, {
  name: "client",
  mode: process.env.NODE_ENV,
  devtool: "eval-source-map", //remove devtool
  entry: {
    "microfrontend": "./src/bootstrap.tsx",
  },
  output: {
    path: path.resolve(__dirname, "../dist"),
    filename: "[name]_[hash].js",
    pathinfo: false,
    publicPath: 'http://localhost:6001/',
  },
  ...
}

綜上所述,我遇到的問題的解決方案只需刪除一行程式碼即可解決。

module.exports = merge(common, {
  name: "client",
  mode: process.env.NODE_ENV,
  entry: {
    "microfrontend": "./src/bootstrap.tsx",
  },
  output: {
    path: path.resolve(__dirname, "../dist"),
    filename: "[name]_[hash].js",
    pathinfo: false,
    publicPath: 'http://localhost:6001/',
  },
  ...
}

感謝您的閱讀。我希望您覺得這有幫助。

版本聲明 本文轉載於:https://dev.to/akinloludavid/devtool-is-not-necessary-535n?1如有侵犯,請聯絡[email protected]刪除
最新教學 更多>
  • 如何在 JavaScript 中有效產生不重複隨機數?
    如何在 JavaScript 中有效產生不重複隨機數?
    在JS中產生不重複的隨機數在JS中產生不重複的隨機數可以使用多種技術來實現。最初,該方法是透過將新產生的數字新增至陣列並與其進行比較來檢查是否已建立新產生的數字。但是,由於過多的遞歸調用,這可能會導致“超出最大調用堆疊大小”錯誤。 一個有效的解決方案是產生一次隨機數字列表,然後按順序處理它。這種方法...
    程式設計 發佈於2024-11-08
  • 如何在共享託管平台上安裝 Composer?
    如何在共享託管平台上安裝 Composer?
    在共享託管平台上訪問Composer在共享託管環境上安裝Composer 面臨著獨特的挑戰,但只要採取正確的方法,這是可能的。讓我們探索一種行之有效的方法,在共享主機上取得 Composer,為您提供必要的可存取性。 首先,在您的系統上找到下載的composer.phar 檔案。找到後,繼續執行以下...
    程式設計 發佈於2024-11-08
  • 了解 MySQL 中的十進位資料類型
    了解 MySQL 中的十進位資料類型
    MySQL 中的 Decimal 資料類型對於金融相關專案至關重要,其中數值的精確度至關重要。最近,我在 Ruby on Rails 專案之一中使用此資料類型時遇到了問題。讓我分享一下我的經驗和學到的東西。 挑戰:超出範圍的數值錯誤 在我的專案期間,我在遷移文件中定義了 Decim...
    程式設計 發佈於2024-11-08
  • Filament 如何使用 Trait(建立、更新)後重新導向到清單頁面
    Filament 如何使用 Trait(建立、更新)後重新導向到清單頁面
    要在 Filament v3 中建立或更新資源後重定向到清單頁面,您可以在資源類別中使用自訂特徵。 建立自訂特徵 <?php namespace App\Traits; trait RedirectIndex { protected function getRedirectUrl()...
    程式設計 發佈於2024-11-08
  • 在閱讀本文之前,請勿使用 Prisma ORM!
    在閱讀本文之前,請勿使用 Prisma ORM!
    想像混亂情況,您在NeonDB 中創建一個具有0.5GB 存儲空間的免費數據庫,然後想,“很好,我將使用免費套餐進行測試” 。然後,幾個小時後,收到了致命的電子郵件:「您的儲存空間已被消耗!」。哇,你什麼意思?連椅子都沒有熱起來!答案是什麼呢?我使用了輝煌的 Prisma ORM,為了改進,我全天運...
    程式設計 發佈於2024-11-08
  • Net 套件如何影響 Go 程式中的死鎖偵測?
    Net 套件如何影響 Go 程式中的死鎖偵測?
    網路包導入和死鎖檢測的相互作用在Go 程序中,如果程式運行時通道操作阻塞,則程序最終會收到「死鎖」錯誤。但是,當導入 net 套件時,行為會改變。 有問題的程式碼片段:package main import ( "fmt" "net/http"...
    程式設計 發佈於2024-11-08
  • 如何從 MySQL 列資料建構 PHP 數組?
    如何從 MySQL 列資料建構 PHP 數組?
    從 MySQL 列資料建構 PHP 陣列使用 mysql_fetch_array 從 MySQL 列檢索資料會產生一個表示單行的陣列。要建立一個由特定列中所有行的值組成的數組,一種有效的方法是迭代該數組並組裝一個新數組:$column = array(); while ($row = mysql_f...
    程式設計 發佈於2024-11-08
  • Go中如何實現禁用語句的高效日誌記錄?
    Go中如何實現禁用語句的高效日誌記錄?
    Go 中禁用語句的高效日誌記錄在關鍵路徑中,嵌入可以動態切換的調試/跟踪日誌記錄語句是有益的運轉時。這種做法非常適合調試離線生產系統或測試鏡像生產環境的系統。 但是,這種類型的日誌記錄有一個關鍵要求:禁用的語句必須對效能影響最小。在 C/C 中,這是透過 LOG 巨集實現的,該巨集抑制參數求值,直到...
    程式設計 發佈於2024-11-08
  • 如何使用 JavaScript 正規表示式從 HTML 中提取多行文字?
    如何使用 JavaScript 正規表示式從 HTML 中提取多行文字?
    使用JavaScript 正規表示式從HTML 中提取多行文字當嘗試使用JavaScript 中的正規表示式從HTML 檢索字串時,這一點至關重要考慮修飾符的兼容性。在您的場景中,您遇到了多行標誌 (/m) 的問題。 Dotall 修飾符與JavaScript此問題源自於JavaScript 不支援...
    程式設計 發佈於2024-11-08
  • 在 MySQL 中以 BLOB 形式儲存的影像周圍回顯文字時,如何避免顯示問題?
    在 MySQL 中以 BLOB 形式儲存的影像周圍回顯文字時,如何避免顯示問題?
    了解MySQL BLOB 的圖像顯示問題當嘗試顯示在MySQL 資料庫中以BLOB 形式儲存的圖像時,開發人員經常會遇到任何文字回顯的問題或圖片標題後導致圖片顯示不正確。 問題原因問題出現是因為網頁瀏覽器將影像資料流外部回顯的任何文字解釋為影像的一部分。這是因為標題和影像資料必須連續且不間斷地傳送。...
    程式設計 發佈於2024-11-08
  • 如何在Go中高效率讀寫CSV檔?
    如何在Go中高效率讀寫CSV檔?
    Go 中高效讀寫 CSV 檔案資料處理中的一個常見任務是以高效能方式讀寫 CSV 檔案。問題中提供的程式碼片段演示了一種讀取 CSV 檔案、處理資料並將其寫回的緩慢方法。潛在的低效率在於在處理之前將整個文件載入到記憶體中的方法。 為了優化程式碼,建議透過呼叫 .Read() 增量讀取檔案並一次處理一...
    程式設計 發佈於2024-11-08
  • 如何使用 PHP 將 HTML 轉換為 PDF?
    如何使用 PHP 將 HTML 轉換為 PDF?
    使用PHP 從HTML 建立PDF雖然HTML 通常用於Web 內容,但在某些情況下可能需要將HTML 轉換為PDF 。本文探討了使用 PHP 實作這種轉換的可行性和方法。 使用 PHP 將 HTML 轉換為 PDF 可能嗎? 是的,使用 PHP 將 HTML 轉換為 PDF 是可能的可能的。然而,...
    程式設計 發佈於2024-11-08
  • 方括號內的交替是正規表示式中的常見陷阱嗎?
    方括號內的交替是正規表示式中的常見陷阱嗎?
    方括號內的交替:正規表示式中的常見陷阱在正規表示式領域,交替運算子(|) 起著關鍵作用匹配多個備選方案的作用。但是,當嘗試在方括號內使用交替時,例如在提供的正規表示式範例中,會出現某些複雜情況,可能導致意外行為。 問題:不符的運算子給定正規表示式中遇到的問題源自於方括號與交替運算子結合使用不當。在正...
    程式設計 發佈於2024-11-08
  • 在 C++ 中如何將整數向量轉換為分隔字串?
    在 C++ 中如何將整數向量轉換為分隔字串?
    將整數向量連接成分隔字串在C 中,將整數向量轉換為由特定字元分隔的字串可以是使用Stringstream一種方法涉及使用std::stringstream,如以下程式碼所示:#include <sstream> //... std::stringstream ss; for (size_...
    程式設計 發佈於2024-11-08
  • 為什麼我在 MySQL 網站檢索中收到「未選擇資料庫」錯誤?
    為什麼我在 MySQL 網站檢索中收到「未選擇資料庫」錯誤?
    解決MySQL 網站檢索中的「未選擇資料庫」錯誤嘗試從網站上託管的MySQL 資料庫檢索資料時(例如、 GoDaddy),您可能會遇到“java.sql.SQLException:未選擇資料庫”錯誤。此錯誤表示您在 JDBC 連線中使用的資料庫 URL 未指定資料庫名稱。 Java 中資料庫URL ...
    程式設計 發佈於2024-11-08

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3