I am trying to set up a gulp project using browser-sync and everything is working fine except that when I run my default task it initially shows a blank page in the browser. If I hit refresh in the browser or make any edits to the css/js/html files, the browser reloads and shows everything correctly.
Can anyone tell me what I am missing?
var gulp = require('gulp');
var sass = require('gulp-sass');
var browserSync = require('browser-sync').create();
var useref = require('gulp-useref');
var uglify = require('gulp-uglify');
var gulpIf = require('gulp-if');
var cssnano = require('gulp-cssnano');
var del = require('del');
var runSequence = require('run-sequence');
var fileinclude = require('gulp-file-include');
var notify = require('gulp-notify');
var concat = require('gulp-concat');
var rename = require('gulp-rename');
gulp.task('sass', function() {
return gulp.src('app/scss/**/*.scss') // Gets all files ending with .scss in app/scss
.pipe(concat('styles.scss'))
.pipe(sass())
.pipe(cssnano())
.pipe(rename('styles.min.css'))
.pipe(gulp.dest('dist/css'))
.pipe(browserSync.reload({
stream: true
}))
.pipe( notify({ message: "sass tasks have been completed!"}) );
});
// Concatenate & Minify JS
gulp.task('scripts', function() {
return gulp.src('app/js/**/*.js')
.pipe(concat('js/main.js'))
.pipe(gulp.dest('dist'))
.pipe(rename('main.min.js'))
.pipe(uglify())
.pipe(gulp.dest('dist/js'))
.pipe(browserSync.reload({
stream: true
}))
.pipe( notify({ message: "scripts tasks have been completed!"}) );
});
gulp.task('browserSync', function() {
browserSync.init({
server: {
baseDir: 'dist'
},
})
});
gulp.task('fileinclude', function() {
gulp.src(['app/**/*.html'])
.pipe(fileinclude())
.pipe(useref())
.pipe(gulp.dest('dist'))
.pipe(browserSync.reload({
stream: true
}))
.pipe( notify({ message: "fileInclude tasks have been completed!"}) );
});
gulp.task('watch', ['browserSync', 'sass', 'scripts', 'fileinclude'], function (){
gulp.watch('app/scss/**/*.scss', ['sass']);
gulp.watch('app/**/*.html', ['fileinclude']);
gulp.watch('app/js/**/*.js', ['scripts']);
});
gulp.task('useref', function(){
return gulp.src('app/*.html')
.pipe(useref())
.pipe(gulp.dest('dist'))
.pipe( notify({ message: "useref tasks have been completed!"}) );
});
gulp.task('clean:dist', function() {
return del.sync('dist/**/*');
})
gulp.task('default', function (callback) {
runSequence(['clean:dist', 'sass', 'scripts', 'fileinclude', 'useref', 'browserSync', 'watch'],
callback
)
})
gulp.task('build', function (callback) {
runSequence(
'clean:dist',
'sass',
'scripts',
'fileinclude',
['useref'],
callback
)
})
I can resolve this issue. Just edit your hosts file (/etc/hosts) and add a new domain reference. 121.0.0.1 myvirualdomain.localhost Where myvirtualdomain.localhost is the proxy where you try to point your browsersync code.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.