2

我正在使用 Gulp 和 Browser Sync 和 XAMPP 来处理我正在构建的 Wordpress 网站。

这是我的 Gulp 设置:

var gulp = require('gulp');
var sass = require('gulp-sass');
var gulpif = require('gulp-if');
var useref = require('gulp-useref');
var browserSync = require('browser-sync').create();
var uglify = require('gulp-uglify');
var cssnano = require('gulp-cssnano');

gulp.task('sass', function() {
    return gulp.src('assets/css/dev/**/*.scss')
    .pipe(sass())
    .pipe(gulp.dest('./'))
    .pipe(browserSync.reload({
        stream: true
    }))
});

gulp.task('browserSync', function() {
    browserSync.init({
        server: {
            proxy: 'http://localhost/turner/',
        },
        port: 80,
        logLevel: 'debug',
    })
});

gulp.task('watch', ['browserSync', 'sass'], function() {
    gulp.watch('assets/css/dev/**/*.scss', ['sass']);
});

我遇到的问题是我的本地主机正在端口 80 上工作,而浏览器同步尝试打开 81 端口。请参阅随附的屏幕截图。

我禁用了 Skype 使用 80 端口,检查了 Windows 进程并且只有 Apache 正在使用这个端口。

不管我做什么,浏览器同步总是试图打开 localhost:81 而不是 80 ,所以我不能使用它。请注意,gulp、浏览器同步和所有其他东西都是最新的,安装了最新版本。

谢谢!

4

1 回答 1

0

浏览器同步不能在与网络服务器相同的端口上工作。浏览器同步会自动增加端口号,因为该端口已被您的网络服务器占用。根本不要使用端口选项。由于您在端口 80 上运行网络服务器,因此您无需在代理中指定它。因此这应该工作:

gulp.task('browserSync', function() {
    browserSync.init({
        server: {
            proxy: 'http://localhost',
        },
       logLevel: 'debug',
    })
});
于 2017-03-23T13:54:46.813 回答