有很多方法可以获得自动重新加载功能,下面的示例使用gulp-connect。我还在这个示例中保留了其他几个有用的 SCSS 编译流程,添加了 cmets 让您有所了解。
"use strict";
var autoprefixer = require("autoprefixer");
var gulp = require("gulp");
var connect = require("gulp-connect");
var plumber = require("gulp-plumber");
var postcss = require("gulp-postcss");
var sass = require("gulp-sass");
gulp.task('server', function () {
connect.server({ // Create local server that will auto-reload itself upon changes into project
root: '.', // Path to WEB root (NOT simply root!) of your project
livereload: true
});
});
gulp.task('css', function () {
return gulp.src('./sass/**/*.scss') // Notice changed glob, it will allow you to compile scss files that are resides into deeper directories
.pipe(plumber()) // Plumber is useful to avoid crashing Gulp in a case if plugin throws exception
.pipe(sass().on('error', sass.logError)) // Make sure that errors are logged
.pipe(postcss([ // PostCSS plugins run, Autoprefixer in particular
autoprefixer({browsers: ['last 2 versions', 'IE >= 11', '> 1%']})
]))
.pipe(gulp.dest('./css')) // Save resulted CSS
.pipe(connect.reload()); // Re-load browser so changes will became visible
}
);
gulp.task('default', ['css']); // Compile CSS by default
gulp.task('watch', ['server', 'default'], function () { // Make sure that server is launched in a case if we're running watching
gulp.watch([
'./sass/**/*.scss'
], ['css']);
});
设置本地服务器后,您将能够通过localhost:8080 访问您的项目,方法是运行gulp watch 或gulp server。