create react app eject后需要做什么

环境

react v16.13.1
antd 4.4.1

  • 结合antd配置主题的时候有用到craco
  • craco其实是一种用来在没有run eject的时候用来配置额外的webpack的
  • antd的官方文档中,是在项目根路径下建立文件craco.config.js
配置文件对应antd - v4.4.1 官方文档中是用来配置主题的
由于运行npm run eject后webpack配置在config中被暴露出来
eject后node_module中就没有craco所依赖的react-script了
所以package.json中执行start命令的craco和react-script也就不能用了
需要将命令改成node,并在webpack中做出与原来相应的配置,比如alias
随之,要将配置主题的配置要参考antd主题配置中的 - '在webpack中配置'在webpack中配置好,参见config/webpack.config.js

配置如下:

// webpack.config.js
module.exports = {
  rules: [
    {
      test: /\.less$/,
      use: [
        {
          loader: 'style-loader',
        },
        {
          loader: 'css-loader', // translates CSS into CommonJS
        },
        {
          loader: 'less-loader', // compiles Less to CSS
          options: {
            lessOptions: { // 如果使用less-loader@5,请移除 lessOptions 这一级直接配置选项。
              modifyVars: {
                'primary-color': '#1DA57A',
                'link-color': '#1DA57A',
                'border-radius-base': '2px',
              },
              javascriptEnabled: true
            }
          }
        }
      ]
    },
  ],
  // ...other config
}
阅读 372

推荐阅读