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

CodeIgniter 4集成Tailwind CSS的Vite配置问题求助

CodeIgniter 4 集成 Tailwind CSS 构建目录无限嵌套问题修复

问题现象

在CodeIgniter 4应用中集成Tailwind CSS时,执行npm run build后,public/assets目录下出现无限嵌套的dist/site/assets/dist/...结构,无法得到预期的public/assets/dist/{site,admin}/styles.css和scripts.js目录结构。

问题原因

Vite默认将项目根目录下的public文件夹作为静态资源目录(publicDir),当构建输出目录设置在public/assets/dist下时,Vite会在构建过程中扫描public目录内的所有文件(包括刚生成的dist文件夹),导致循环处理生成无限嵌套的目录结构;同时原配置未明确资源路径基准,也会引发路径解析错误。

修正后的配置文件

1. vite.config.site.cjs

const { defineConfig } = require('vite');
const path = require('path');
const tailwindcss = require('tailwindcss');
const autoprefixer = require('autoprefixer');

module.exports = defineConfig({
  // 禁用默认publicDir扫描,避免循环处理输出目录
  publicDir: false,
  build: {
    outDir: path.resolve(__dirname, 'public/assets/dist/site'),
    // 关闭assetsDir,直接将资源输出到outDir根目录
    assetsDir: '',
    rollupOptions: {
      input: path.resolve(__dirname, 'public/assets/src/site/scripts/scripts.js'),
      output: {
        entryFileNames: 'scripts.js',
        assetFileNames: 'styles.css',
      }
    },
    emptyOutDir: true,
  },
  css: {
    postcss: {
      plugins: [
        tailwindcss('./tailwind.config.site.cjs'),
        autoprefixer
      ]
    }
  }
});

2. vite.config.admin.cjs

const { defineConfig } = require('vite');
const path = require('path');
const tailwindcss = require('tailwindcss');
const autoprefixer = require('autoprefixer');

module.exports = defineConfig({
  publicDir: false,
  build: {
    outDir: path.resolve(__dirname, 'public/assets/dist/admin'),
    assetsDir: '',
    rollupOptions: {
      input: path.resolve(__dirname, 'public/assets/src/admin/scripts/scripts.js'),
      output: {
        entryFileNames: 'scripts.js',
        assetFileNames: 'styles.css',
      }
    },
    emptyOutDir: true,
  },
  css: {
    postcss: {
      plugins: [
        tailwindcss('./tailwind.config.admin.cjs'),
        autoprefixer
      ]
    }
  }
});

其他说明

package.json、tailwind.config.admin.cjs、tailwind.config.site.cjs无需修改,保持原有内容即可。

验证效果

执行npm run build后,将生成预期的目录结构:

public/assets/
└── dist/
    ├── site/
    │   ├── styles.css
    │   └── scripts.js
    └── admin/
        ├── styles.css
        └── scripts.js

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 20:21:15