Gulp ruby​​-sass和autoprefixer不相处

Ste*_*eve 9 sass gulp gulp-sass autoprefixer

styles我的gulpfile中有一个任务:

gulp.task('styles', function () {
  var sass = require('gulp-ruby-sass');
  var autoprefixer = require('gulp-autoprefixer');
    return gulp.src('app/styles/main.scss')
    .pipe(sass({sourcemap: true, sourcemapPath: '../scss'}))
    .on('error', function (err) { console.log(err.message); })
    .pipe(autoprefixer({
        browsers: ['last 2 versions'],
        cascade: false
    }))
    .pipe(gulp.dest('.tmp/styles'));
});
Run Code Online (Sandbox Code Playgroud)

在控制台中生成这个:

[14:25:21] Starting 'styles'...
[14:25:21] gulp-ruby-sass: stderr: DEPRECATION WARNING: Passing --sourcemap without a value is    deprecated.
Sourcemaps are now generated by default, so this flag has no effect.
[14:25:21] gulp-ruby-sass: directory
[14:25:25] gulp-ruby-sass: write main.css
  write main.css.map

  events.js:72
    throw er; // Unhandled 'error' event
          ^
  Error: /Users/stevelombardi/Documents/command-central/ccgulp/main.css.map:3:3: Unknown word
Run Code Online (Sandbox Code Playgroud)

如果我将管道注释到autoprefixer,没有错误,一切都编译.这是什么交易?

注意,我似乎也无法禁用源图的编写.我从repo页面尝试了grunt-ruby-sass的所有其他设置,但没有工作.

我可以没有autoprefixer生活,但很想让它工作......

rya*_*ter 6

这个问题似乎与main.css.map有关,即使你不想要一个,gulp-ruby-sass@0.7.1在我写这篇文章的时候使用它.

到目前为止,我遇到了两种不同的解决方案:

1)如果您并不需要sourcemaps:

gulp.task('styles', function() {
    gulp.src('app/styles/main.scss')
        .pipe(sass({
            "sourcemap=none": true // hack to allow auto-prefixer to work
        }))
        .pipe(prefix("last 2 versions"))
        .pipe(gulp.dest('css'));
});
Run Code Online (Sandbox Code Playgroud)

这是我最近遇到此问题时使用的内容.

2)如果您确实需要源图:

那你应该试试 gulp-ruby-sass@1.0.0-alpha

(相关github问题)


小智 2

代替:

browsers: ['last 2 versions'],
Run Code Online (Sandbox Code Playgroud)

尝试这个:

browsers: ['last 2 version'],
Run Code Online (Sandbox Code Playgroud)

如果这不起作用,我在 gulp-sass 和 gulp-sourcemaps 上运气更好。

// Compile Sass & create sourcemap
.pipe(sourcemaps.init())
    .pipe(sass())
.pipe(sourcemaps.write())
.pipe(gulp.dest('css'))

// Autoprefix, load existing sourcemap, create updated sourcemap
.pipe(sourcemaps.init({loadMaps: true}))
    .pipe(autoprefixer('last 2 version')
.pipe(sourcemaps.write('./'))
.pipe(gulp.dest('css'))
Run Code Online (Sandbox Code Playgroud)