0

我正在从 gulp-ruby-sass 切换到 gulp-sass。Gulp ruby​​ sass 可以正常工作,但是为了让我们的 Windows 开发人员的生活更轻松,我正在尝试消除对 Ruby 的依赖。

我在设置我的 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,我正在遵循本网站的指导方针。

4

1 回答 1

5

//CSS中没有 Javascript 风格的单行注释,只有多行/* */注释//SASS/SCSS 支持单行注释,但从生成的 CSS中删除。

由于autoprefixer只在 CSS 而不是 SASS/SCSS 上运行,因此您需要在sass()之前运行autoprefixer()

.pipe(sass(sassOptions).on('error', sass.logError))
.pipe(autoprefixer(autoprefixerOptions))
于 2016-06-17T13:32:40.243 回答