试图为这个问题找到一个遮阳篷,但在这里找不到?
我正在使用 Laravel Elixir 并在我的 gulpfile 中得到以下内容:
mix.sass(['app.scss', 'admin.scss'], 'public/css');
有人能告诉我为什么它不创建两个 css 文件而是将其编译成一个吗?如何实现它创建多个文件?
提前致谢!
试图为这个问题找到一个遮阳篷,但在这里找不到?
我正在使用 Laravel Elixir 并在我的 gulpfile 中得到以下内容:
mix.sass(['app.scss', 'admin.scss'], 'public/css');
有人能告诉我为什么它不创建两个 css 文件而是将其编译成一个吗?如何实现它创建多个文件?
提前致谢!
是的,提供的代码几乎成功了,不过我写的有点不同......
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 watch 将再次工作
混合 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');