Gulp libsass/autoprefixer sass 文件中的注释错误

Gulp libsass/autoprefixer error on comments in sass file

我正在从 gulp-ruby-sass 切换到 gulp-sass。 Gulp ruby sass 工作没有错误,但为了让我们的 Windows 开发人员的生活更轻松,我试图消除对 Ruby.[=16 的依赖=]

我在设置 gulp 文件时安装了软件包,如下所示:

    var sassFiles = './app/assets/sass/**/*.{scss,sass}';
    var cssFiles = './app/assets/css';
    var sassOptions = {
      errLogToConsole: true,
      outputStyle: 'compact'
    };
    var autoprefixerOptions = {
      browsers: ['last 2 versions']
    };


  gulp.task('sass', function () {
     return gulp
    .src(sassFiles)
    .pipe(sourcemaps.init())
    .pipe(autoprefixer(autoprefixerOptions))
    .pipe(sass(sassOptions).on('error', sass.logError))
    .pipe(sourcemaps.write())
    .pipe(gulp.dest(cssFiles))
    .pipe(browserSync.stream());
});

除了我文件中的评论每次都失败:

[08:20:39] Starting 'sass'...

events.js:154
  throw er; // Unhandled 'error' event
  ^
 CssSyntaxError: /Users/stevelombardi/github/designsystem-  3/app/assets/sass/design_system.scss:1:1: Unknown word
 ////
 ^
/// This is a poster comment.

映射到 scss 文件中的注释。请注意,即使我删除了这个块,sass 也会在下一条评论中出错。

如果我注释掉 autoprefixer 管道它就可以工作。那么这里的问题是什么?

FWIW,我遵循了 this site 的指导方针。

CSS、only multi-line /* */ comments 中没有 Javascript 风格的单行 // 注释。 SASS/SCSS 支持单行 // 注释,但 stripped from the resulting CSS.

由于 autoprefixer 仅在 CSS 而非 SASS/SCSS 上运行,因此您需要 运行 sass()autoprefixer() 之前:

.pipe(sass(sassOptions).on('error', sass.logError))
.pipe(autoprefixer(autoprefixerOptions))