Css 拉维长生不老药:使用通配符而不合并

Css 拉维长生不老药:使用通配符而不合并,css,sass,gulp,laravel-elixir,Css,Sass,Gulp,Laravel Elixir,我在resources/assets/sass中有一个文件夹,其中有两个文件1.scss和2.scss 我想做: elixir(function (mix) { .sass('*.scss', './public/css/'); }); 然后生成1.css和2.css 我实际上有两个以上的文件,这就是为什么我不想一个接一个地写它们。有没有办法做到这一点?谢谢因为您可以在Gulpfile中编写任何JavaScript,所以您可以使用“glob”模块获取文件名,如下所示: var elixir

我在
resources/assets/sass
中有一个文件夹,其中有两个文件
1.scss
2.scss

我想做:

elixir(function (mix) {
 .sass('*.scss', './public/css/');
});
然后生成
1.css
2.css


我实际上有两个以上的文件,这就是为什么我不想一个接一个地写它们。有没有办法做到这一点?谢谢

因为您可以在Gulpfile中编写任何JavaScript,所以您可以使用“glob”模块获取文件名,如下所示:

var elixir = require('laravel-elixir');
var glob   = require('glob');
var path   = require('path');

elixir(function (mix) {
    for (let file of glob.sync('resources/assets/sass/*.scss')) {
        mix.sass(path.basename(file), './public/css/');
    }
});
如果需要,它可以更高级—例如,我将它与版本控制和自定义路径(以及ES2015语法)一起使用:


我也在寻找答案。你有没有想出一个解决办法?
const elixir = require('laravel-elixir');
const glob   = require('glob');
const path   = require('path');

elixir(mix =>
{
    let build_files = [];

    for (let theme of glob.sync('resources/assets/sass/themes/*/')) {
        theme = path.basename(theme);

        mix.sass(`themes/${theme}/app.scss`, `public/css/${theme}/app.css`);
        build_files.push(`css/${theme}/app.css`);
    }

    mix.version(build_files);
});