Elixir 没有创建多个 css 文件

Elixir not creating multiple css files

试图找到这个问题的答案,但在这里找不到?

我正在使用 Laravel Elixir 并在我的 gulpfile 中得到以下内容:

mix.sass(['app.scss', 'admin.scss'], 'public/css');

有人能告诉我为什么它不创建两个 css 文件而是将其编译成一个文件吗?如何创建多个文件?

提前致谢!

混合sass个文件的方法是(https://github.com/laravel/elixir/blob/master/ingredients/sass.js):

/**
 * Prepare the Sass task.
 *
 * @param {string|array}  src
 * @param {string}        output
 * @param {object|null}   options
 * @param {bool}          useRuby
 */
var addSassTask = function(src, output, options, useRuby) {
    return compile({
        compiler: 'Sass',
        plugin: useRuby ? 'gulp-ruby-sass' : 'sass',
        pluginOptions: buildOptions(options, useRuby),
        src: src,
        output: output || elixir.config.cssOutput,
        search: '**/*.+(sass|scss)'
    });
};

你有,

mix.sass(['app.scss', 'admin.scss'], 'public/css'); 

这里,src = ['app.scss', 'admin.scss']

output = 'public/css'

因此您应该将单个文件合并为与输出相同的文件:

mix.sass('app.scss', 'app.scss');
mix.sass('admin.scss', 'admin.scss');

是的,提供的代码几乎可以解决问题,不过我写的有点不同...

elixir(function(mix) {
  mix
    .sass('app.scss', './public/css/app.css')
    .sass('admin.scss', './public/css/admin.css');
});

但这至少对我来说,直到我开始正常的 gulp 任务才起作用,gulp watch 不会创建新文件:S

所以停止监视并使用 "gulp" 启动默认 gulp 任务,在创建文件后 gulp 监视将再次工作