Laravel将一个sass混合到多个css

Laravel将一个sass混合到多个css,laravel,webpack,laravel-mix,Laravel,Webpack,Laravel Mix,尝试此操作时: mix.js('resources/js/app.js', 'public/js') .sass('resources/sass/app.scss', 'public/css/app_blue.css', { data: '$theme-bg-primary: #1450d9;' }) .sass('resources/sass/app.scss', 'public/css/app_red.css', { data: '$t

尝试此操作时:

mix.js('resources/js/app.js', 'public/js')
    .sass('resources/sass/app.scss', 'public/css/app_blue.css', {
        data: '$theme-bg-primary: #1450d9;'
    })
    .sass('resources/sass/app.scss', 'public/css/app_red.css', {
        data: '$theme-bg-primary: #ba0000;'
    });
npm的输出是
不应两次包含“[…]/app.scss”项。


如何从一个源输出两个不同的css作为app.scss?

因为两个css文件使用不同的变量值。您必须调用.sass两次,但为了进一步优化它,我建议您使用变量

e、 g

重复可以像这样删除

mix.js('resources/js/app.js', 'public/js')
.sass(commonSassFile, cssPublicDir+'/app_blue.css', {
    data: '$theme-bg-primary: #1450d9;'
})
.sass(commonSassFile, cssPublicDir+'/app_red.css', {
    data: '$theme-bg-primary: #ba0000;'
});

您需要为正在创建的每个主题创建一个存根scss文件,而不是将数据注入mix调用

mix.js('resources/assets/js/app.js', 'public/js')
   .sass('resources/assets/sass/app_red.scss', 'public/css')
   .sass('resources/assets/sass/app_blue.scss', 'public/css')

其中那些scss文件包括基本的
app.scss
和您正在注入的
数据的覆盖。

经过我的思考,我得出了与您相同的结论。
mix.js('resources/assets/js/app.js', 'public/js')
   .sass('resources/assets/sass/app_red.scss', 'public/css')
   .sass('resources/assets/sass/app_blue.scss', 'public/css')