@northfire

Как в сборке pug +Gulp убрать проблему с компиляцией?

добрый вечер!
имеется вот такой галп-файл
"use strict";

var gulp 			= require("gulp"),
	sass 			= require("gulp-sass"),
	pug 			= require("gulp-pug"),
	postcss 		= require("gulp-postcss"),
	sourcemaps 		= require("gulp-sourcemaps"),
	mqpacker 		= require("css-mqpacker"),
	sortCSSmq 		= require('sort-css-media-queries'), 
	autoprefixer 	= require("autoprefixer"), // postcss end
	plumber 		= require('gulp-plumber'),
	notify 			= require("gulp-notify"),
	beeper 			= require('beeper'), 
	browserSync 	= require('browser-sync').create(),
	debug 			= require('gulp-debug'),
	del 			= require('del'), //del
	newer			= require("gulp-newer"), 
	imagemin 		= require('gulp-imagemin'), 
	sassGlob 		= require('gulp-sass-glob'); 


let postplugins = [
	autoprefixer({browsers: ["last 5 versions"]}),
	mqpacker({
		sort: sortCSSmq
	})
];

// gulp.task("browser-sync", function() {
// 	browserSync({
// 		server: {
// 			baseDir: "public"
// 		},
// 			open: true,
// 			notify: false
// 	})
// });
gulp.task("serve", function () {
	browserSync.init({
		server: "public"
	});
	browserSync.watch("public/**/*.*").on("change", browserSync.reload);
});
// pug
gulp.task("pages", function() {
		return gulp.src("./source/pages/*.pug" , {since: gulp.lastRun("pages")})
			.pipe(plumber({
				errorHandler: notify.onError(function(err){
					return {
						message: "Error: <%= error.message %>",
						sound: beeper()
					};
				})
			}))
		.pipe(pug({pretty: true}))
		.pipe(debug({title: "pages"}))
		.pipe(gulp.dest("./public"));
		// .on("end",browserSync.reload);
});
// scss
gulp.task("styles", function() {
		return gulp.src("./source/sass/all.scss")
			.pipe(plumber({
				errorHandler: notify.onError(function(err){
					return {
						message: "Error: <%= error.message %>",
						sound: beeper()
					};
				})
			}))
		.pipe(sassGlob())
		.pipe(sourcemaps.init())
		.pipe(sass({outputStyle: 'expanded'}))
		.pipe(postcss(postplugins))
		.pipe(sourcemaps.write('.'))
		.pipe(gulp.dest("./public/css/"));
		// .pipe(browserSync.reload({stream: true}));
});
// images
gulp.task("images", function() {
	return gulp.src("./source/images/**" , {since: gulp.lastRun("images")}) 
		.pipe(newer("public/images"))
		.pipe(imagemin())
		.pipe(debug({title: "images"}))
		.pipe(gulp.dest("public/images"))
		.pipe(browserSync.reload({stream: true}));
});
//clean
gulp.task("clean" , function () {
	return del("public");
});
// build
gulp.task("build", gulp.series("clean",	gulp.parallel("pages","styles","images" )));
// watch
gulp.task("watch", function() { 
	gulp.watch("./source/**/*.pug", gulp.series("pages"));
	gulp.watch("./source/**/*.scss", gulp.series("styles")); 
	gulp.watch("./source/images/**", gulp.series("images")); 
});

gulp.task("default", 
	gulp.series("build", gulp.parallel("watch", "serve"))
);

проблемы с которыми я столкнулся:
1галп почему-то слушает только source/pages/*.pug , хотя в вотче должен вроде бы слушать все.
при изменении в header в браузер синк не меняется хедер(+ дебагер пишет что ничего непоменялось)
2. при создании новой станицы, к примеру inner.pug она появляется скомпиленная в public, но когда перехожу в строке браузера по адресу localhost:3000/inner.html она открывается да, но потом любые изменения в inner.pug файла (или даже scss ) сходят на нет и в консоли тишина =)
структура папок вот такая 5a63409e62a2b104174268.png
  • Вопрос задан
  • 49 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы