1.1 安裝腳手架:css
npm install -g create-react-app
1.2 使用腳手架建立項目:react
create-react-app antd-start-demo antd-start-demo爲項目名。
1.3 啓動webpack
npm start
2.1 安裝yarn:ios
npm install -g yarn
2.2 獲取yarn當前的鏡像源:git
yarn config get registry
2.3 設置爲淘寶鏡像:github
yarn config set registry 'https://registry.npm.taobao.org'
2.4 經常使用命令:web
yarn init --初始化 yarn add --添加模塊 yarn remove --刪除模塊 yarn /yarn install --安裝項目中的依賴
yarn add react-router-dom axios less-loader
yarn eject
antd是基於less開發的,咱們使用less能夠方便的改變主題色等配置。npm
安裝less模塊:yarn add less@2.7.3
json
打開config/webpack.config.dev.js添加以下配置:axios
{ test: /\.less$/, use: [ require.resolve('style-loader'), { loader: require.resolve('css-loader'), options: { importLoaders: 1 }, }, { // Options for PostCSS as we reference these options twice // Adds vendor prefixing based on your specified browser support in // package.json loader: require.resolve('postcss-loader'), options: { // Necessary for external CSS imports to work // https://github.com/facebook/create-react-app/issues/2677 ident: 'postcss', plugins: () => [ require('postcss-flexbugs-fixes'), require('postcss-preset-env')({ autoprefixer: { flexbox: 'no-2009', }, stage: 3, }), ], }, }, { loader: require.resolve('less-loader') } ], },
到配置cssload同級如圖所示
注意:在webpack.config.dev.js添加的配置部分,也須要在webpack.config.prod.js中作相同的配置。不然可能致使項目發佈上線後,報錯沒法執行。
yarn add antd
import { Button } from "antd"; import 'antd/dist/antd.css'; ... render() { return ( <div> <Button>click</Button> </div> ); } ...
注意:默認狀況下安裝的antd須要引入antd/dist/antd.css纔會生效樣式,但不少時候,咱們只是使用了部分組件,引入整個antd樣式文件,有些得不償失。因此按需加載應運而生。
1.添加babel-plugin-import,
yarn add babel-plugin-import
2.打開webpack配置,搜索:JS with Babel
找到以下配置:
// Process application JS with Babel. // The preset includes JSX, Flow, TypeScript and some ESnext features. { test: /\.(js|mjs|jsx|ts|tsx)$/, include: paths.appSrc, loader: require.resolve('babel-loader'), options: { customize: require.resolve( 'babel-preset-react-app/webpack-overrides' ), plugins: [ [ require.resolve('babel-plugin-named-asset-import'), { loaderMap: { svg: { ReactComponent: '@svgr/webpack?-prettier,-svgo![path]', }, }, }, ], ], cacheDirectory: true, // Save disk space when time isn't as important cacheCompression: true, compact: true, }, },
進行修改plugin下添加:
["import", { "libraryName": "antd", "style": true }]
至此能夠取消引入css文件了,babel會自動根據引入的組件,默認加載對應的css。
{ loader: require.resolve('less-loader'), options: { modules: false, modifyVars: { "@primary-color": "#f9c700" } } }
在webpack,中配置less的地方便可修改。@primary-color爲antd內置的less變量,只須要覆蓋掉默認的配置,就實現了修改主題色。
本文GitHub代碼:GitHub地址 歡迎star!
做者博客:作全棧攻城獅
分享交流先後端知識,一塊兒作全棧攻城獅。
個人博客即將同步至騰訊雲+社區,邀請你們一同入駐:https://cloud.tencent.com/developer/support-plan?invite_code=2y2zuha3q6uc0