Ste*_*eve 0 sass gulp gulp-sass autoprefixer gulp-autoprefixer
我正在从 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());
});
Run Code Online (Sandbox Code Playgroud)
除了每次都失败在我的文件中的评论:
[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.
Run Code Online (Sandbox Code Playgroud)
它映射到 scss 文件中的注释。请注意,即使我删除了这个块,sass 也会在下一条评论中出现错误。
如果我注释掉 autoprefixer 管道,它就可以工作。那么这里有什么问题呢?
FWIW,我遵循了这个网站的指导方针。
//CSS中没有 Javascript 风格的单行注释,只有多行/* */注释。//SASS/SCSS 支持单行注释,但从生成的 CSS 中剥离。
由于autoprefixer仅在 CSS 上运行而不是 SASS/SCSS,因此您需要在sass()之前运行autoprefixer():
.pipe(sass(sassOptions).on('error', sass.logError))
.pipe(autoprefixer(autoprefixerOptions))
Run Code Online (Sandbox Code Playgroud)