使用react-app-rewired和customize-cra 個性化配置


creat-react-app 初始化項目后,我們對項目的啟動是通過 react-scripts 實現的,項目開發過程中,如果需要引入對less 支持,和高階組件對裝飾器的使用,我們需要在webpack 中添加對此功能的支持,我們需要custom-cra 這個包,https://www.npmjs.com/package/customize-cra#documentation  

 

 看官方介紹,意思就是這個包擴展了create-react-app 功能 custom-cra 依賴 react-app-rewired  那我們首先要安裝 這兩個包 

yarn add custom-cra react-app-rewired  -dev 

使用方法官網也有詳細的介紹,就是在package.json 同級目錄下新建 config-overides.js 進行配置,下面是官網的demo

const {
  override,
  addDecoratorsLegacy,
  disableEsLint,
  addBundleVisualizer,
  addWebpackAlias,
  adjustWorkbox 
} = require("customize-cra");
const path = require("path");
 
module.exports = override(
  // enable legacy decorators babel plugin
  addDecoratorsLegacy(),
 
  // disable eslint in webpack
  disableEsLint(),
 
  // add webpack bundle visualizer if BUNDLE_VISUALIZE flag is enabled
  process.env.BUNDLE_VISUALIZE == 1 && addBundleVisualizer(),
 
  // add an alias for "ag-grid-react" imports
  addWebpackAlias({
    ["ag-grid-react$"]: path.resolve(__dirname, "src/shared/agGridWrapper.js")
  }),
 
  // adjust the underlying workbox
  adjustWorkbox(wb =>
    Object.assign(wb, {
      skipWaiting: true,
      exclude: (wb.exclude || []).concat("index.html")
    })
  )
);

 到這里,配置就完成了,我在做less 配置的時候碰到過如下問題

 

 通過報錯判斷應該是less-loader 版本不對,於是將less-loader 降級  yarn install less-loader@5.0.0 問題解決。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM