【问题标题】:Elixir not creating multiple css filesElixir 没有创建多个 css 文件
【发布时间】:2015-08-25 10:02:10
【问题描述】:

试图为这个问题找到一个遮阳篷,但在这里找不到?

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

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

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

提前致谢!

【问题讨论】:

  • 试试mix.sass('app.scss').sass('admin.scss') 这应该会编译成两个文件。
  • 这对我不起作用。该文档还指出,sass 方法只能调用一次。

标签: css laravel sass laravel-elixir


【解决方案1】:

是的,提供的代码几乎成功了,不过我写的有点不同...

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 将再次工作

【讨论】:

  • 刚重启 gulp watch 没用?我知道在对 gulpfile 进行更改后,您应该始终重新启动“gulp watch”命令,但我看不出只运行“gulp”有什么不同。
  • 不,只是重新启动监视任务没有创建文件,我不知道为什么。我主要从 yeoman 生成器中使用 gulp,或者通过使用 bower 或其他东西安装它,第一次使用它的长生不老药。
【解决方案2】:

混合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');

【讨论】:

  • 这没有用,但让我走上了正轨。我最终让它工作,完全指定输出文件: mix.sass('app.scss', 'public/css/app.css').sass('admin.scss', 'public/css/admin.css ');也许你可以在你的 awnser 中添加这个?还是我应该为此自己创建一个遮阳篷?
猜你喜欢
  • 2019-10-09
  • 1970-01-01
  • 2021-06-19
  • 1970-01-01
  • 1970-01-01
  • 2019-09-04
  • 2015-11-07
  • 1970-01-01
  • 2012-02-15
相关资源
最近更新 更多