BrowserSync非常新。我试图找出如何实现目标哈哈。
我存储所有内容的主文件名为' gulpwork'。
在里面我有4个文件夹;两个将Pug(' src')转换为HTML(' dist')和两个将SASS(' sass')转换为CSS(' css&# 39。)
我设法让BrowserSync运行但是我得到了“无法获取/'消息,所以我知道它可能与文件目录有关。
我想让Pug和SASS同步。
编辑:只有当我的Pug和HTML文件在我的根目录中直接位于他们尊重的文件夹之外时它才有效,并且仅当HTML文件名为index.html时才有效。如何让它在其受尊重的文件夹中工作,而无需将名称更改为索引?
这是我的gulpfile.js代码:
JS:
var gulp = require('gulp');
var pug = require('gulp-pug');
var sass = require('gulp-sass');
var browserSync = require('browser-sync').create();
gulp.task('browserSync', ['sass', 'pug'], function() {
browserSync.init({
server: {
baseDir: './'
}
})
});
gulp.task('pug', function() {
gulp.src('./src/*.pug')
.pipe(pug({
pretty: true
}))
.pipe(gulp.dest('./dist'))
});
gulp.task('sass', function() {
return gulp.src('./sass/*.sass')
.pipe(sass())
.pipe(gulp.dest('./css'))
.pipe(browserSync.reload({stream: true}))
});
gulp.task('watch', ['browserSync'], function() {
gulp.watch('./src/*.pug', ['pug']);
gulp.watch('./sass/*.sass', ['sass']);
gulp.watch('./dist/*.html').on('change', browserSync.reload);
});
gulp.task('default', ['sass', 'pug', 'watch']);
答案 0 :(得分:1)
想出来。 BrowserSync会查找' index.html'文件启动,我们得到'不能GET /'错误,因为它正在寻找它没有看到的东西。因此,无论我们的pug / html文件位于何处,我们必须告诉pug函数+ watch函数它们在哪里,然后运行BrowserSync。在它运行之后,您仍然会看到错误,但它确实有效。所有你要做的就是链接到文件所以在我的浏览器中localhost:3000后我会输入我的文件的位置,所以它将是' localhost:3000 / dist / about.html'之后,BrowserSync工作。 :)
var gulp = require('gulp');
var pug = require('gulp-pug');
var sass = require('gulp-sass');
var browserSync = require('browser-sync').create();
gulp.task('browserSync', ['sass', 'pug'], function() {
browserSync.init({
server: {
baseDir: './'
}
})
});
gulp.task('pug', function() {
gulp.src('./src/*.pug')
.pipe(pug({
pretty: true
}))
.pipe(gulp.dest('./dist'));
});
gulp.task('sass', function() {
return gulp.src('./sass/*.sass')
.pipe(sass())
.pipe(gulp.dest('./css'))
.pipe(browserSync.reload({stream: true}));
});
gulp.task('watch', ['browserSync'], function() {
gulp.watch('./src/*.pug', ['pug']);
gulp.watch('./sass/*.sass', ['sass']);
gulp.watch('./dist/*.html').on('change', browserSync.reload);
});
gulp.task('default', ['sass', 'pug', 'watch']);
答案 1 :(得分:0)
gulp.task('browser-sync', function() {
browserSync.init({
watch: true, // <-- Adding this line solved my reload problem
server: {
baseDir: './'
},
port: 8080 // <-- If you have problems with port 3000 try changing it like this
});
});