【问题标题】:gulp task doesn't do concatgulp 任务不做 concat
【发布时间】:2014-07-19 17:49:15
【问题描述】:

我正在尝试首先构建我的 scss,最后将结果与 css 文件合并。

这是我的任务

gulp.task('styles', function () {
    gulp.src('../scss/styles.scss')
        .pipe($.sass({
            errLogToConsole: true
        }))
        .pipe($.autoprefixer('last 2 versions'))
        .pipe(gulp.dest('../public/styles/'))
        .pipe($.filelog())
        .pipe($.size());

   gulp.src([
               '../public/bower_components/animate.css/animate.css',      
               '../public/styles/styles.css'
            ], {base: '.'})
        .pipe($.concat('../public/styles/styles.css'))
        .pipe($.filelog())
        .pipe($.size());
});

现在最终结果是一个仅包含我的 scss css 的 css 文件,似乎忽略了动画 css。有什么建议我在这里做错了吗?

【问题讨论】:

  • 您应该在 sass 级别连接样式表。在主 .scss 文件中执行一些 @import 语句。此外,将您要导入的所有文件的文件扩展名更改为 .scss
  • animate.css 来自 bower,所以我不能只包含它。 @import 不会将导入文件中的内容复制到另一个文件中!无论如何,合并两个文件有多难?
  • 就这样做吧,你这样做很奇怪。 sass-lang.com/guide#topic-5
  • 我查了一下,但它只描述了导入scss,而不是css
  • 你是对的!多么重要的缺失功能,尤其是对于像凉亭这样的东西。有一张票可以启用此功能 - github.com/sass/sass/issues/556。我要么切换到 Less/Stylus(我知道这不合理),要么使用类似这个 gulp 插件 - github.com/yuguo/gulp-import-css

标签: css sass gulp


【解决方案1】:

我建议你看看event-stream,你可以用更简洁的语法为你的styles任务最终得到类似的东西:

es = require('event-stream');

gulp.task('styles', function () {

  var _css = gulp.src(['../public/bower_components/animate.css/animate.css',      
                      '../public/styles/styles.css'], {base: '.'});

  var _sass = gulp.src('../scss/styles.scss')
               .pipe($.sass({ errLogToConsole: true }))
               .pipe($.autoprefixer('last 2 versions'));

  return es.merge(_sass, _css)
           .pipe($.concat('styles.css'))
           .pipe($.filelog())
           .pipe($.size())
           .pipe(gulp.dest('./public/styles/'));

});

【讨论】:

  • 还有一个问题,如果我将路径的开头移到基础:['bower_comp.....', '...'], {base: '../public/'},它不再包含这些文件。有什么建议吗?
  • 目前不知道,但如果你真的很挣扎,请打开一个新问题。我建议您将 Gulpfile 放在项目的根目录中,这样您就不必走上自己的道路,您可以访问所有文件,这对我来说听起来更好。
  • 这是一个流星项目,然后你不能这样做(AFAIK),所以我将所有的 gulp 文件放在一个名为 .gulp 的目录中。如果我不能解决这个问题,我会针对这个问题开一个新问题,谢谢!
  • 刚找到解决办法,原来数组中的路径需要以/开头
猜你喜欢
  • 2021-09-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多