You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

react-app-rewired start运行正常但build不生成index等静态文件如何解决?

问题根因分析

1. 直接使用react-scripts build报错的原因

react-scripts默认不会加载config-overrides.js配置,你配置的module-resolver路径别名插件没有生效,编译器会把components/header识别为第三方npm包,自然会提示找不到模块要求安装。

2. react-app-rewired build打包只有图片无其他资源的核心原因

开发环境和生产环境的webpack编译逻辑、校验严格度差异导致,核心冲突点有两个:

  • TSX文件处理规则冲突:react-scripts本身内置了TS/TSX文件的编译规则,你用addWebpackModuleRule额外追加了一条TSX处理规则,导致同一份TSX文件会被两套规则先后处理。开发环境有缓存、校验逻辑宽松的情况下没有触发异常,生产环境编译时静默失败,JS/HTML相关的编译流程中断,但图片资源由单独的file-loader处理不受影响,所以最终只有图片被打包进build目录。
  • Linaria loader执行逻辑异常:生产环境下Linaria提取样式的逻辑对编译顺序更敏感,重复的TSX处理规则会导致Linaria编译产物异常,进一步打断后续的资源打包流程,且错误被react-scripts的生产环境日志配置吞掉,所以打包提示成功但无对应产物。
修复方案
  • 调整TSX规则配置,避免重复处理
    不要用addWebpackModuleRule追加TSX规则,而是直接修改原有内置规则,加入Linaria loader,修改config-overrides.js如下:
const { useBabelRc, override, addWebpackModuleRule } = require('customize-cra');

const isDev = process.env.NODE_ENV === 'development';

// 自定义函数修改原有tsx处理规则
const addLinariaLoader = () => config => {
  config.module.rules.forEach(rule => {
    if (rule.oneOf) {
      rule.oneOf.forEach(oneOfRule => {
        // 匹配内置的tsx处理规则
        if (oneOfRule.test && oneOfRule.test.toString().includes('tsx')) {
          oneOfRule.use.push({
            loader: '@linaria/webpack-loader',
            options: {
              cacheDirectory: 'src/.linaria_cache',
              sourceMap: isDev,
            },
          })
        }
      })
    }
  })
  return config
}

module.exports = override(
  useBabelRc(),
  addLinariaLoader(),
  addWebpackModuleRule({
    test: /-icon\.svg$/,
    use: ['@svgr/webpack'],
  })
);
  • 补充tsconfig路径别名配置
    如果你的项目用了TypeScript,需要在tsconfig.json的compilerOptions中添加对应别名配置,避免生产环境类型检查失败:
{
  "compilerOptions": {
    "baseUrl": "src",
    "paths": {
      "components/*": ["./components/*"],
      "styles/*": ["./styles/*"],
      "assets/*": ["./assets/*"]
    }
  }
}
  • 开启详细日志排查
    如果修改后还是有问题,执行yarn build --verbose查看完整打包日志,定位被静默忽略的具体报错。

内容的提问来源于stack exchange,提问作者4 1

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 20:36:02