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

Vite构建React应用报错Uncaught ReferenceError: require is not defined

Vite构建React应用时出现"require is not defined"错误的解决方法

我用Vite构建React应用,构建成功但浏览器运行时抛出错误:

Uncaught ReferenceError: require is not defined

我的源码中并未使用require,经排查错误来自redux-storage包,以下是出错时的vite.config.mts配置文件:

import { defineConfig } from 'vite';
import react from '@vitejs/plugin-react';
import viteTsconfigPaths from 'vite-tsconfig-paths';
import svgrPlugin from 'vite-plugin-svgr';
import { viteCommonjs, esbuildCommonjs } from '@originjs/vite-plugin-commonjs';
import requireTransform from 'vite-plugin-require-transform';

export default defineConfig({
  plugins: [
    requireTransform({}),
    viteCommonjs(),
    react(),
    viteTsconfigPaths(),
    svgrPlugin(),
  ],
  define: {
    'process.env': process.env,
  },
  build: {
    outDir: 'build',
  },
  optimizeDeps: {
    esbuildOptions: {
      define: {
        global: 'globalThis',
      },
      plugins: [esbuildCommonjs(['redux-storage'])],
    },
  },
  server: {
    open: true,
    port: 3000,
  },
});

解决方法

通过安装vite-plugin-commonjs并在配置中添加对redux-storage/build-es目录的过滤,成功解决了问题,修改后的核心配置如下:

import commonjs from 'vite-plugin-commonjs';

export default defineConfig({
  plugins: [
    commonjs({
      filter(id) {
        if (id.includes('node_modules/redux-storage/build-es')) {
          return true;
        }
      },
    }),
    // 其他插件
  ],
  // 其他配置项
});

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 00:52:38