Попробуйте это:
function watch() {
browserSync.init({
server: {
// baseDir: './src',
baseDir: "./",
index: "src/index.html",
}
});
gulp.watch('src/scss/**/*.scss', scss);
gulp.watch('src/*.html').on('change', browserSync.reload);
}
Обратите внимание на изменения, которые я внес в baseDir
и добавив параметр сервера index
.Я думаю, что ваш index.html
находится в папке src?
Я запустил ваш исходный код, и браузер всегда искал здесь файл css:
http://localhost:3000/dist/css/main.css
, что проблематично, поскольку ваш main.css
не находится в файле index.html, так какbrowserSync, кажется, думает.Также используйте это:
<link rel="stylesheet" href="dist/css/main.css">
С учетом вышесказанного вам не нужно перемещать файл index.html
из папки src
.
Кроме того, в вашей задаче scss, sourcemaps.init()
pipe должен идти до sass()
pipe
function scss() {
return gulp.src('src/scss/**/*.scss')
.pipe(sourcemaps.init())
.pipe(sass().on('error', sass.logError))
.pipe(autoprefixer('last 2 versions'))
.pipe(cleanCSS())
.pipe(sourcemaps.write())
.pipe(gulp.dest('dist/css'))
.pipe(browserSync.stream());
}
Это последнее изменение не имеет ничего общего с вашей первоначальной проблемой, но это изменение, которое вы захотите внести.