记录:create-react-app + ant design 构建 react项目更改主题

create-react-app构建的react是将webpack也进行打包,构建的一个集成的简便的react项目。

首先,用create-react-app构建一个简单的react项目

create-react-app my-project

cd my-project

npm start

然后,打开项目代码,发现并没有webpack.config等相关文件,但是create-react-app为我们提供了一个脚本命令:eject,只要npm run eject就可以将项目解压成平常我们见到的webpack项目结构了。

下面是npm run eject后的项目结构,已经有了webpack.config.dev.js

npm run eject

然后,添加ant design

npm install antd -S
npm add antd

为了使antd按需加载,所以引入babel-plugin-import

npm install babel-plugin-import -D

然后在webpack.confog.dev.js 中找到// Process JS with Babel

更改配置为

// Process JS with Babel.
  {
                        test: /\.(js|jsx|mjs)$/,
                        include: paths.appSrc,
                        loader: require.resolve('babel-loader'),
                        options: {
                            "plugins": [
                                ["import", {"libraryName": "antd", "libraryDirectory":"es", "style": true}] // `style: true` 会加载 less 文件
                            ],
                            // 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,
                        },
   },

然后在App.js中添加代码,测试antd是否能够正常使用

npm install
npm start

运行结果,成功引入。

下面就是更改主题了,首先安装less和less-loader

npm install -g less

//less-loader
npm install --save-dev less-loader less

成功之后package.json

然后,配置webpack.config.dev.js

rule下面这个位置,添加options,modifyVars为具体主题修改代码,详见antd官方文档 - 定制主题

{
            test: /\.less$/,
            use: [{
              loader: 'style-loader',
              }, {
                loader: 'css-loader', // translates CSS into CommonJS
              }, {
                loader: 'less-loader', // compiles Less to CSS
                options: {
                  modifyVars: {
                    'primary-color': 'red',
                    'link-color': '#1DA57A',
                    'border-radius-base': '2px',
                  },
                  javascriptEnabled: true,
              }
            }],
},

最后,重新安装依赖,启动本地服务,此时主题以及发生了改变(如图),主色调已经变成了红色。

npm install

npm start

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值