- 创建项目
npm i -g create-react-app
create-react-app 名称
cd 名称 - 引入antd
npm add antd -
npm add react-app-rewired -D
-
改变package.json
/* 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", }
-
npm install babel-plugin-import --save-dev
-
使用 babel-plugin-import, babel-plugin-import 是一个用于按需加载组件代码和样式的 babel 插件(原理),现在我们尝试安装它并修改 config-overrides.js 文件。
+ const { injectBabelPlugin } = require('react-app-rewired'); module.exports = function override(config, env) { + config = injectBabelPlugin(['import', { libraryName: 'antd-mobile', style: 'css' }], config); return config; };
-
因为injectBabelPlugin在react-app-rewired 2.0+的时候被删除了
2.0版删除了重新连接辅助函数 所有帮助函数: injectBabelPlugin compose getBabelLoader getLoader babelLoaderMatcher loaderNameMatches
-
解决,npm install customize-cra --save-dev
//config-overrides.js进行修改如下 const { override, fixBabelImports, addLessLoader, } = require("customize-cra"); module.exports = override( fixBabelImports("import", { libraryName: "antd-mobile", libraryDirectory: "es", style: true // change importing css to less }), addLessLoader({ javascriptEnabled: true, modifyVars: { "@primary-color": "#1DA57A" } }) );
-
因为用的是style:true
-
所以还需要安装npm i -D less less-loader
搞定!