浏览器同步仅使用nodemon + gulp + express触发一次

时间:2017-06-07 12:30:58

标签: javascript express gulp browser-sync nodemon

在查找大量相关问题后,我找不到符合我需求的正确答案。

所以我正在运行一台Express服务器,我想使用Gulp自动完成一些任务 这是非常基本的,因为我需要的是重新启动服务器(使用Gulp-nodemon),然后在文件更改时重新加载浏览器(使用Browser-sync进行跨浏览器和多设备调试)。

当我运行gulp start命令时,服务器启动,Browser-sync也会启动,这会正确打开我的页面。
但是,在文件更改时,nodemon正在重新启动服务器,但浏览器同步的重新加载不会触发。然后,我需要手动刷新页面以查看更改...

这是我的gulpfile:

//Some requires

gulp.task('css', function () {
    gulp.src('stylus/main.styl')
        .pipe(stylus({compress: false, paths: ['stylus']}))
        .pipe(autoprefixer())
        .pipe(minifyCSS())
        .pipe(rename('style.css'))
        .pipe(gulp.dest('public/styles'));
});

gulp.task('sync', ['nodemon'], function() {
    browserSync.init({
        proxy: 'http://localhost:3000',// Don't use proxy
        port: 4000, // Desired PORT address.
        open: true,
        notify: true,
        logConnections: true,
        reloadDelay: 1000
    });
});

gulp.task('nodemon', function (cb) {
    var started = false;
    return nodemon({
        script: 'index.js',
        tasks: ['css'],
        ext: 'js ejs styl', 
        env: { 'NODE_ENV': 'development' }
    }).on('start', function() {
        if (!started) {
            cb();
            started = true;
            browserSync.reload();
        } 
    }).on('restart', function() {
    });
});

gulp.task('start', ['sync']);

我有什么遗漏吗?

我看到关于这一点有很多问题,但每个人似乎都在不同的阶段遇到问题......

0 个答案:

没有答案