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

使用Vite搭建TypeScript+React+daisyUI时遇require未定义错误求助

解决Vite+TS+React+daisyUI项目中require is not defined错误

原因分析

Vite 默认采用 ES 模块规范,require 是 CommonJS 专属语法。当 Tailwind 配置文件为 .js 后缀时,Vite 会将其识别为 ES 模块,此时调用 require 就会触发报错;另外 tsconfig.json 里的 moduleResolution: "node" 是 Node.js 的模块解析逻辑,和 Vite 的 ES 模块环境不兼容,也会间接引发该问题。

解决方案

方案1:将Tailwind配置改为CommonJS格式

  • 把 tailwind.config.js 重命名为 tailwind.config.cjs
  • 配置文件内可正常使用 require 语法引入依赖,示例:
/** @type {import('tailwindcss').Config} */
module.exports = {
  content: [
    "./index.html",
    "./src/**/*.{js,ts,jsx,tsx}",
  ],
  theme: {
    extend: {},
  },
  plugins: [require("daisyui")],
}

方案2:改用ES模块语法替代require

  • 保留 tailwind.config.js 后缀,将 require 替换为 import:
/** @type {import('tailwindcss').Config} */
import daisyui from 'daisyui';

export default {
  content: [
    "./index.html",
    "./src/**/*.{js,ts,jsx,tsx}",
  ],
  theme: {
    extend: {},
  },
  plugins: [daisyui],
}
  • 同步调整 tsconfig.json,让模块解析适配 Vite 的 ES 模块环境:
{
  "compilerOptions": {
    "moduleResolution": "bundler",
    "module": "ESNext",
    "target": "ESNext",
    // 保留其他原有配置
  }
}

方案3:确保Vite配置正确识别Tailwind

  • 检查 vite.config.ts 的 PostCSS 配置,确保 Tailwind 正常生效:
import { defineConfig } from 'vite';
import react from '@vitejs/plugin-react';
import tailwindcss from 'tailwindcss';
import autoprefixer from 'autoprefixer';

export default defineConfig({
  plugins: [react()],
  css: {
    postcss: {
      plugins: [tailwindcss, autoprefixer],
    },
  },
});

验证步骤

  1. 重启 Vite 开发服务器,确保配置修改生效
  2. 在组件中使用 daisyUI 类名(如 <button className="btn btn-primary">测试按钮</button>),检查样式是否正常加载
  3. 查看控制台确认 require is not defined 错误已消失

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 04:52:36