create-react-app覆蓋修改默認(rèn)webpack配置

create-react-app覆蓋修改默認(rèn)webpack配置

  • 前言

CRA即create-react-app已經(jīng)有一套完善的webpack配置,但是在有些情況下我們需要修改下webpack默認(rèn)配置,如修改outputPath、sourcemap方案等,但由于 eject是不可逆的,所以我選擇其他方案 ,也是antDesign所用到的react-app-rewired.

  • 安裝

npm i react-app-rewired customize-cra babel-plugin-import

customize-cra用來獲得一組 CRA 2.0兼容的 rewirers
babel-plugin-import是一個用于按需加載組件代碼和樣式的 babel 插件

  • 書寫配置

在項(xiàng)目根目錄創(chuàng)建一個 config-overrides.js 用于修改默認(rèn)配置

// 修改webpack默認(rèn)配置,目的:按需引入antdesign
// 、、customize-cra包含很多api
 const { override, fixBabelImports } = require('customize-cra');

 const rewiredMap = () => config => {
   // config為所有的webpack配置
   
   config.devtool = config.mode === 'development' ? 'cheap-module-source-map' : false  // 生產(chǎn)環(huán)境關(guān)閉sourcemap關(guān)閉
   return config
 }


 module.exports = override(
   fixBabelImports('import', {
     libraryName: 'antd',
     libraryDirectory: 'es',
     style: 'css',
   }),
   rewiredMap()
 );

文中代碼為配置了按需引入andesign及修改soucemap方案, 既可以使用customize-cra提供的各種api來修改配置,也可以手動寫方法如文中的rewiredMap來修改默認(rèn)配置(rewiredMap內(nèi)config參數(shù)為webpack默認(rèn)配置,一般覆蓋即可)。

customize-cra github地址https://github.com/timarney/react-app-rewired/blob/master/README_zh.md
react-app-rewired github地址https://github.com/timarney/react-app-rewired/blob/master/README_zh.md

如果這篇文章幫到了您,點(diǎn)個贊唄??????????????????????????
轉(zhuǎn)發(fā)請注明出處

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容