国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

詳解在create-react-app使用less與antd按需加載

2024-05-06 15:27:27
字體:
來源:轉載
供稿:網友

使用antd按需加載

使用react-app-rewired對 create-react-app 的默認配置進行自定義

1、yarn add react-app-rewired --dev

/* package.json */"scripts": {-  "start": "react-scripts start",+  "start": "react-app-rewired start",-  "build": "react-scripts build",+  "build": "react-app-rewired build",-  "test": "react-scripts test --env=jsdom",+  "test": "react-app-rewired test --env=jsdom",}

2.然后在項目根目錄創建一個 config-overrides.js 用于修改默認配置。

module.exports = function override(config, env) { // do stuff with the webpack config... return config;};

使用 babel-plugin-import

babel-plugin-import 是一個用于按需加載組件代碼和樣式babel 插件(原理),現在我們嘗試安裝它并修改config-overrides.js 文件

1.yarn add babel-plugin-import --dev

+ const { injectBabelPlugin } = require('react-app-rewired'); module.exports = function override(config, env) {+  config = injectBabelPlugin(['import', { libraryName: 'antd', libraryDirectory: 'es', style: 'css' }], config);  return config; };

或者也可修改

{      test: //.(js|jsx|mjs)$/,      include: paths.appSrc,      loader: require.resolve('babel-loader'),      options: {       plugins: [        ['import', { libraryName: 'antd', style: true }],       ],       // This is a feature of `babel-loader` for webpack (not Babel itself).       // It enables caching results in ./node_modules/.cache/babel-loader/       // directory for faster rebuilds.       cacheDirectory: true,      },     },

自定義主題

yarn add react-app-rewire-less --dev

 const { injectBabelPlugin } = require('react-app-rewired');+ const rewireLess = require('react-app-rewire-less'); module.exports = function override(config, env) {-  config = injectBabelPlugin(['import', { libraryName: 'antd', style: 'css' }], config);+  config = injectBabelPlugin(['import', { libraryName: 'antd', style: true }], config);+  config = rewireLess.withLoaderOptions({+   modifyVars: { "@primary-color": "#1DA57A" },+  })(config, env);  return config; };

參考鏈接:https://ant.design/docs/react/use-with-create-react-app-cn

使用less

如果已經配置react-app-rewire-less,則無需再進行此操作

1.npm install less-loader less --save-dev
2.修改node_modules/react_script/config下的webpack.config.dev.js 和 webpack.config-prod.js 配置文件

test: /.css$/ 改為 /.(css|less)$/ test: /.css$/ 的 use 數組配置增加 less-loader
{ test: //.(css|less)$/, use: [  require.resolve('style-loader'),  {   loader: require.resolve('css-loader'),   options: {    importLoaders: 1,   },  },  {   loader: require.resolve('postcss-loader'),   options: {    // Necessary for external CSS imports to work    // https://github.com/facebookincubator/create-react-app/issues/2677    ident: 'postcss',    plugins: () => [     require('postcss-flexbugs-fixes'),     autoprefixer({      browsers: [       '>1%',       'last 4 versions',       'Firefox ESR',       'not ie < 9', // React doesn't support IE8 anyway      ],      flexbox: 'no-2009',     }),    ],   },  },  {   loader: require.resolve('less-loader') // compiles Less to CSS  } ],},            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 六枝特区| 阳江市| 敦化市| 台南县| 平山县| 东源县| 山阴县| 乌鲁木齐县| 石泉县| 梅河口市| 肃北| 遂川县| 修武县| 巩留县| 新化县| 东乡族自治县| 石首市| 永新县| 长兴县| 株洲市| 淅川县| 玉环县| 焉耆| 双城市| 伊宁县| 方山县| 如皋市| 措勤县| 徐汇区| 九寨沟县| 额尔古纳市| 陇西县| 咸阳市| 九江县| 那曲县| 县级市| 扬中市| 鸡泽县| 宾川县| 福清市| 巩留县|