react学习 - 自定义脚手架配置

本文介绍了如何通过react-app-rewired自定义create-react-app项目的webpack配置,以便更好地支持开发需求,并提供了AntD按需引入的具体实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

自定义create-react-app配置

上一篇博客: react学习 - 使用react脚手架 中讲了如何安装一个react scaffolding, 这篇主要讲, 如何自定义配置来帮助我们更好的进行开发.

在整个项目中, 只在根目录发现了package.json这个文件, 并没有发现 webpack.json或者类似的配置文件, 难道这个脚手架不是用webpack打包的么?

查看package.json 发现是使用的 react-scripts. 然后去搜了一下, 发现这个是基于webpack的. 所以我们去看了一下这个包.

/node_modules/react-scripts/config/webpack.config.prod.js

这个配置就是webpack的配置了. 如果本来就是打算本地临时打包的时候有一些更改, 那么就直接更改这个文件就好. 如果想要在任何环境都打包出来的一样. 这个文件是不行的.

因为node_modules基本上都是本地的, 不会跟着项目代码走.

1. 安装 react-app-rewired

需要安装: react-app-rewired这个包, 来覆盖默认配置.

yarn add react-app-rewired --dev
//二选一即可
npm install react-app-rewired --save

安装好, 修改package.json

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

对应的以前的start, build, test全部改成这个样子.

2. 创建覆盖配置文件

在同package.json同级目录下创建: config-overrides.js 内容如下:

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

这里的config就是webpack.prod.js文件里面的配置.

以上就可以了.

AntD按需引入

参考: 在 create-react-app 中使用antd

样例

我修改了一下样例, 自定义build文件名称:

const ExtractTextPlugin = require('extract-text-webpack-plugin');
module.exports = function override(config, env) {
    config.output.filename = 'static/js/main.js';
    config.plugins.forEach((item, index) => {
        if (item instanceof ExtractTextPlugin) {
            config.plugins.splice(index, 1);
        }
    });
    config.plugins.push(new ExtractTextPlugin({
        filename: 'static/css/main.css',
    }));
    return config;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值