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

Laravel 9项目配置Vite将app.scss编译为指定目录的style.css

解决Laravel 9中Vite编译SCSS到指定目录的问题

直接修改build.outDir无效是因为Laravel Vite插件会默认接管资源输出逻辑,覆盖该配置。以下是两种可行的配置方案:

方案一:通过Laravel Vite插件自定义入口输出路径

这是最贴合Laravel Vite生态的配置方式,可精准指定每个资源的输出位置:

import { defineConfig } from 'vite';
import laravel from 'laravel-vite-plugin';

export default defineConfig({
    plugins: [
        laravel({
            input: {
                // 将app.scss编译为public/css/style.css
                'css/style': 'resources/sass/app.scss',
                // 可同时指定JS文件的输出路径(可选)
                'js/app': 'resources/js/app.js',
            },
            // 取消默认的build子目录,让资源直接输出到public根目录下的对应文件夹
            buildDirectory: '',
        }),
    ],
});

配置完成后,运行npm run build,资源会按指定路径生成:

  • resources/sass/app.scss → public/css/style.css
  • resources/js/app.js → public/js/app.js

在Blade模板中引用时,需对应修改路径:

@vite(['css/style.css', 'js/app.js'])

方案二:通过Rollup输出规则自定义(适合单CSS资源场景)

如果需要更灵活的资源命名规则,可在build.rollupOptions中配置输出逻辑:

import { defineConfig } from 'vite';
import laravel from 'laravel-vite-plugin';

export default defineConfig({
    build: {
        rollupOptions: {
            output: {
                // 单独处理CSS资源的输出路径
                assetFileNames: (assetInfo) => {
                    if (assetInfo.name?.match(/\.(scss|css)$/)) {
                        return 'css/style.css';
                    }
                    // 其他资源(如字体、图片)保持默认命名规则
                    return 'assets/[name].[hash][extname]';
                },
                // JS资源的输出规则(按需调整)
                entryFileNames: 'js/[name].[hash].js',
                chunkFileNames: 'js/[name].[hash].js',
            },
        },
    },
    plugins: [
        laravel([
            'resources/sass/app.scss',
            'resources/js/app.js',
        ]),
    ],
});

注意:这种方式如果存在多个CSS入口,会导致输出文件覆盖,仅适合单CSS文件的场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 03:15:47