autoprefixerを使ってSassのコンパイルを行う際、少し前からエラーメッセージが表示されるようになったので、対応方法をメモ。
対応前
まずは対応前の状態を確認してみます。
今回はgulp、gulp-sass、autoprefixer、gulp-postcssをインストールして使用します。
gulpfile.jsの指定は以下のようにします。
gulpfile.js
var gulp = require('gulp'),
sass = require('gulp-sass'),
postcss = require('gulp-postcss'),
autoprefixer = require('autoprefixer');
gulp.task('sass', function () {
return gulp.src(['./_src/sass/**/*.scss', '!./_src/sass/**/_*.scss'])
.pipe(sass({
outputStyle : 'expanded'
}))
.pipe(postcss([
autoprefixer({browsers: ['last 2 versions']})
]))
.pipe(gulp.dest('assets/css/'));
});
ブラウザのバージョン指定は「last 2 versions」にしています。
次にSassファイルを用意します。
style.scss
.flex {
display: flex;
}
.transform {
transform: scale(1.5);
}
これで準備が完了しましたので、下記コマンドを実行してSassファイルをコンパイルします。
gulp sass
コンパイル自体は成功して、以下のようなファイルが生成されました。
style.css
.flex {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
}
.transform {
-webkit-transform: scale(1.5);
transform: scale(1.5);
}
ただ、コンパイル時に以下のようなエラーメッセージが表示されていました。

Replace Autoprefixer browsers option to Browserslist config.
Use browserslist key in package.json or .browserslistrc file.Using browsers option can cause errors. Browserslist config
can be used for Babel, Autoprefixer, postcss-normalize and other tools.If you really need to use option, rename it to overrideBrowserslist.
Learn more at:
https://github.com/browserslist/browserslist#readme
https://twitter.com/browserslist
autoprefixerのブラウザ指定をgulpfile.jsからpackage.jsonまたは.browserslistrcというファイルに変更する必要があるようです。
package.jsonへの変更
ブラウザ指定をgulpfile.jsからpackage.jsonに変更してみます。
まずはgulpfile.jsから指定を削除します。
gulpfile.js
var gulp = require('gulp'),
sass = require('gulp-sass'),
postcss = require('gulp-postcss'),
autoprefixer = require('autoprefixer');
gulp.task('sass', function () {
return gulp.src(['./_src/sass/**/*.scss', '!./_src/sass/**/_*.scss'])
.pipe(sass({
outputStyle : 'expanded'
}))
.pipe(postcss([
autoprefixer()
]))
.pipe(gulp.dest('assets/css/'));
});
package.jsonに “browserslist”: [“指定1”, “指定2”] のような形で指定します。
package.json
{
"name": "sample",
"version": "1.0.0",
〜 略 〜
"browserslist": [
"last 2 versions"
]
}
Sassのコンパイルを再度実行すると、先ほどと同じ内容にコンパイルできました。
.browserslistrcへの変更
次に.browserslistrcへの変更です。
先ほどと同様にgulpfile.jsから指定を削除した上で、.browserslistrcというファイルをプロジェクトルートに作成して、以下のように記述します。
.browserslistrc
# autoprefixerのブラウザ指定 last 2 versions
行頭に#をつけるとコメントアウトになります。
Sassのコンパイルを再度実行すると、先ほどと同じ内容になりました。
コメントが承認されるまで時間がかかります。