【问题标题】:Gulp compile SCSS/SASS into separate filesGulp 将 SCSS/SASS 编译成单独的文件
【发布时间】:2015-07-27 14:27:51
【问题描述】:

我正在使用Yeoman Gulp webapp generator,在构建时遇到了问题。

我目前有一个使用 SASS/SCSS 的项目。现在,它们都编译成 main.css 文件,但我的客户希望将所有 .scss 文件编译成单独的 .css 文件。我看到 .scss 文件编译成 .tmp 文件夹中的 .css 文件,但是当我构建项目时,它们不会转移到 DIST 文件夹中的样式文件夹。你知道我如何改变 gulp 设置来做到这一点吗?基本上将所有 .scss 文件转换为 .css 文件,并在我在命令行中执行“gulp”时将它们包含在构建中?

【问题讨论】:

    标签: web-applications gulp


    【解决方案1】:

    一种方法是:

    1. <link>s 周围的注释块移除到您的自定义 CSS 文件中
    2. 将此添加到您的 html 任务中(在 return 语句之前):

      gulp.src('.tmp/styles/*.css')
        .pipe($.minifyCss({compatibility: '*'}))
        .pipe(gulp.dest('dist/styles'));
      
    3. 从您的 .scss 文件中删除前导下划线 (_) (_base.scssbase.scss)

    4. @import 变量、函数等单独放入每个文件(当您想使用它们时),它们不再共享,因为部分不是 @imported 到 main.css
    5. 为每个样式表添加一个<link>

    【讨论】:

      【解决方案2】:

      您是否尝试过指定通配符 css 输出“*.css”?

      例如:

      var gulp = require('gulp');
      var sass = require('gulp-sass');
      var minify = require('gulp-minify-css');
      
      gulp.task('scss', function(){
       gulp.src('.tmp/styles/*.scss')
        .pipe(plumber())
        .pipe(sass())
        .pipe(minify(*.css))
        .pipe(gulp.dest('dist/styles/*.css');
      });
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-11-03
        • 2014-01-24
        • 1970-01-01
        • 1970-01-01
        • 2017-03-14
        • 2021-08-01
        • 2014-07-04
        • 2019-05-26
        相关资源
        最近更新 更多