如何将styles
和browser-sync
任务和watch
任务组合成一个gulp
默认命令?
这是我到目前为止所拥有的。
var gulp = require("gulp");
var sass = require("gulp-sass");
var browserSync = require("browser-sync").create();
gulp.task("styles", function() {
gulp
.src("sass/**/*.scss")
.pipe(sass().on("error", sass.logError))
.pipe(gulp.dest("./css/"));
});
// Static server
gulp.task("browser-sync", function() {
browserSync.init({
server: {
baseDir: "./"
}
});
});
//Watch task
gulp.task("default", function() {
gulp.watch("sass/**/*.scss", gulp.series("styles"));
});
我也从浏览器同步文档中进行了尝试,但是它给了我错误AssertionError [ERR_ASSERTION]: Task function must be specified
顶部带有相同的变量。
gulp.task("serve", ["sass"], function() {
browserSync.init({
server: "./"
});
gulp.watch("/sass/*.scss", ["sass"]);
gulp.watch("/*.html").on("change", browserSync.reload);
});
// Compile sass into CSS & auto-inject into browsers
gulp.task("sass", function() {
return gulp
.src("/scss/*.scss")
.pipe(sass())
.pipe(gulp.dest("/css"))
.pipe(browserSync.stream());
});
gulp.task("default", ["serve"]);
答案 0 :(得分:3)
我猜您正在使用gulp 4,它处理相关任务的方式有所不同,这就是为什么您遇到错误的原因。
如果确实使用的是gulp 4,请尝试使用官方recipe:
var gulp = require('gulp');
var sass = require('gulp-sass');
var browserSync = require('browser-sync');
gulp.task('sass', function() {
return gulp.src('sass/**/*.scss')
.pipe(sass().on('error', sass.logError))
.pipe(gulp.dest('./css/')) //removed semicolon
.pipe(browserSync.reload({ stream:true }));
});
// watch Sass files for changes, run the Sass preprocessor with the 'sass' task and reload
gulp.task('serve', gulp.series('sass', function() {
browserSync({
server: {
baseDir: './'
}
});
gulp.watch('sass/**/*.scss', gulp.series('sass'));
}));
答案 1 :(得分:0)
仅在命令中写入gulp,运行所有任务。
var gulp = require("gulp");
var sass = require("gulp-sass");
var browserSync = require("browser-sync").create();
var runSequence = require('run-sequence'); // npm install run-sequence --save-dev
gulp.task("styles", function () {
gulp
.src("sass/**/*.scss")
.pipe(sass().on("error", sass.logError))
.pipe(gulp.dest("./css/"));
});
// Static server
gulp.task("browser-sync", function () {
browserSync.init({
server: {
baseDir: "./"
}
});
});
//watch for files changes
gulp.task('watch', ['styles', 'browser-sync'], function () {
// sass files changes
gulp.watch('sass/**/*.sass', ['styles']);
// CSS files changes
gulp.watch('css/**/*.css', browserSync.reload);
});
// The default task (called when you run 'gulp' from cli)
gulp.task('default', function (callback) {
runSequence(['styles', 'browser-sync', 'watch'],
callback
)
})