BrowserSync 代理卡住加载
BrowserSync proxy stuck loading
当我 运行 Gulp UI 页面在 http://localhost:3001, but on http://localhost:3000 上工作时,浏览器提供一个空白页面,该页面卡在加载中,没有控制台错误。
我在 Windows 10、Gulp 版本 3.9.1、BrowserSync 版本 2.24.4 上使用 WAMP。
这个设置直到最近都运行良好,这让我很困惑。
gulpfile.js
var gulp = require('gulp');
var sass = require('gulp-sass');
var autoprefixer = require('gulp-autoprefixer');
var uglify = require('gulp-uglify');
var rename = require("gulp-rename");
var sourcemaps = require('gulp-sourcemaps');
var browserSync = require('browser-sync').create();
gulp.task('sass', function(){
return gulp.src('sass/*.scss')
.pipe(sourcemaps.init())
.pipe(sass({outputStyle: 'expanded'}).on('error', sass.logError))
.pipe(autoprefixer('last 2 versions'))
.pipe(sourcemaps.write())
.pipe(gulp.dest('css'))
.pipe(browserSync.stream());
});
gulp.task('compress', function () {
gulp.src('scripts/js/*.js')
.pipe(sourcemaps.init())
.pipe(uglify())
.pipe(sourcemaps.write())
.pipe(rename({ suffix: '-min' }))
.pipe(gulp.dest('scripts/minified/'));
});
gulp.task('browserSync', function() {
browserSync.init({
proxy: "experiments"
});
});
gulp.task('watch',['browserSync', 'sass', 'compress'], function(){
gulp.watch('sass/*.scss', ['sass']);
gulp.watch('scripts/js/*.js', ['compress']);
gulp.watch('*.php', browserSync.reload);
gulp.watch('*.html', browserSync.reload);
gulp.watch('scripts/minified/*.js', browserSync.reload);
})
终端输出
[17:24:44] Using gulpfile ~\Documents\Web Design Local\host\experiments\gulpfile.js
[17:24:44] Starting 'browserSync'...
[17:24:44] Finished 'browserSync' after 9.99 ms
[17:24:44] Starting 'sass'...
[17:24:44] Starting 'compress'...
[17:24:44] Finished 'compress' after 2.2 ms
[Browsersync] 1 file changed (universal.css)
[17:24:45] Finished 'sass' after 174 ms
[17:24:45] Starting 'watch'...
[17:24:45] Finished 'watch' after 17 ms
[Browsersync] Proxying: http://experiments
[Browsersync] Access URLs:
--------------------------------------
Local: http://localhost:3000
External: http://redacted:3000
--------------------------------------
UI: http://localhost:3001
UI External: http://redacted:3001
--------------------------------------
看起来端口设置是否正确?这是 gulp 任务之前的 运行...
之后...
当您在浏览器中进行实验时,它是否有效?
可能是浏览器更新,而不是 gulp
我会尝试将您的主机更改为 dev.experiments.co.uk
然后将代理更改为 dev.experiments.co.uk
我已经设置了 gulp + browsersync 作为测试,我认为——在一些混乱和文档阅读之后——你可以改变这个:
gulp.task('browserSync', function() {
browserSync.init({
proxy: "experiments"
});
});
对此:
gulp.task('browser-sync', function() {
browserSync.init({
proxy: 'experiments',
host: 'experiments',
open: 'external'
});
});
...它会起作用。
备注:
- 如果未设置,
host
默认为 null
。
open
是要执行的浏览器操作,默认为 true
。其他选项包括不打开浏览器的 false
,以及此处使用的 external
打开 host
. 中指定的 URL
- 我还建议您使用一个扩展,即使它只是为了组织您的文件系统、虚拟主机设置 and/or WAMP 列表等。
.dev
is useless over http in chrome these days, and .local
messes with Multicast DNS services. I use .mere
, you could use .pix
;) - your safest most future-proof bet is to use .test as per RFC 6761
这个问题也让我抓狂,因为最近我的代理也停止工作了。我试图思考我改变了什么 - 最后我意识到我将 MalwareBytes 升级到最新版本并且它的防火墙设置弄乱了我的端口。我禁用了它,现在它可以正常工作了。
希望对大家有所帮助!
安装新的 windows 后,我遇到了同样的问题,浏览器在没有初始化项目的情况下继续加载。
问题是浏览器同步包需要更新,所以我做了以下操作
run the terminal as administrator
cd into the project folder
rm -rf node_modules (if you already have the package.json file)
npm install
您可能还需要重建 node-sass 以便您可以使用以下内容
npm rebuild node-sass
然后 运行 gulp 项目,一切正常
当我 运行 Gulp UI 页面在 http://localhost:3001, but on http://localhost:3000 上工作时,浏览器提供一个空白页面,该页面卡在加载中,没有控制台错误。
我在 Windows 10、Gulp 版本 3.9.1、BrowserSync 版本 2.24.4 上使用 WAMP。
这个设置直到最近都运行良好,这让我很困惑。
gulpfile.js
var gulp = require('gulp');
var sass = require('gulp-sass');
var autoprefixer = require('gulp-autoprefixer');
var uglify = require('gulp-uglify');
var rename = require("gulp-rename");
var sourcemaps = require('gulp-sourcemaps');
var browserSync = require('browser-sync').create();
gulp.task('sass', function(){
return gulp.src('sass/*.scss')
.pipe(sourcemaps.init())
.pipe(sass({outputStyle: 'expanded'}).on('error', sass.logError))
.pipe(autoprefixer('last 2 versions'))
.pipe(sourcemaps.write())
.pipe(gulp.dest('css'))
.pipe(browserSync.stream());
});
gulp.task('compress', function () {
gulp.src('scripts/js/*.js')
.pipe(sourcemaps.init())
.pipe(uglify())
.pipe(sourcemaps.write())
.pipe(rename({ suffix: '-min' }))
.pipe(gulp.dest('scripts/minified/'));
});
gulp.task('browserSync', function() {
browserSync.init({
proxy: "experiments"
});
});
gulp.task('watch',['browserSync', 'sass', 'compress'], function(){
gulp.watch('sass/*.scss', ['sass']);
gulp.watch('scripts/js/*.js', ['compress']);
gulp.watch('*.php', browserSync.reload);
gulp.watch('*.html', browserSync.reload);
gulp.watch('scripts/minified/*.js', browserSync.reload);
})
终端输出
[17:24:44] Using gulpfile ~\Documents\Web Design Local\host\experiments\gulpfile.js
[17:24:44] Starting 'browserSync'...
[17:24:44] Finished 'browserSync' after 9.99 ms
[17:24:44] Starting 'sass'...
[17:24:44] Starting 'compress'...
[17:24:44] Finished 'compress' after 2.2 ms
[Browsersync] 1 file changed (universal.css)
[17:24:45] Finished 'sass' after 174 ms
[17:24:45] Starting 'watch'...
[17:24:45] Finished 'watch' after 17 ms
[Browsersync] Proxying: http://experiments
[Browsersync] Access URLs:
--------------------------------------
Local: http://localhost:3000
External: http://redacted:3000
--------------------------------------
UI: http://localhost:3001
UI External: http://redacted:3001
--------------------------------------
看起来端口设置是否正确?这是 gulp 任务之前的 运行...
之后...
当您在浏览器中进行实验时,它是否有效?
可能是浏览器更新,而不是 gulp
我会尝试将您的主机更改为 dev.experiments.co.uk
然后将代理更改为 dev.experiments.co.uk
我已经设置了 gulp + browsersync 作为测试,我认为——在一些混乱和文档阅读之后——你可以改变这个:
gulp.task('browserSync', function() {
browserSync.init({
proxy: "experiments"
});
});
对此:
gulp.task('browser-sync', function() {
browserSync.init({
proxy: 'experiments',
host: 'experiments',
open: 'external'
});
});
...它会起作用。
备注:
- 如果未设置,
host
默认为null
。 open
是要执行的浏览器操作,默认为true
。其他选项包括不打开浏览器的false
,以及此处使用的external
打开host
. 中指定的 URL
- 我还建议您使用一个扩展,即使它只是为了组织您的文件系统、虚拟主机设置 and/or WAMP 列表等。
.dev
is useless over http in chrome these days, and.local
messes with Multicast DNS services. I use.mere
, you could use.pix
;) - your safest most future-proof bet is to use .test as per RFC 6761
这个问题也让我抓狂,因为最近我的代理也停止工作了。我试图思考我改变了什么 - 最后我意识到我将 MalwareBytes 升级到最新版本并且它的防火墙设置弄乱了我的端口。我禁用了它,现在它可以正常工作了。
希望对大家有所帮助!
安装新的 windows 后,我遇到了同样的问题,浏览器在没有初始化项目的情况下继续加载。
问题是浏览器同步包需要更新,所以我做了以下操作
run the terminal as administrator
cd into the project folder
rm -rf node_modules (if you already have the package.json file)
npm install
您可能还需要重建 node-sass 以便您可以使用以下内容
npm rebuild node-sass
然后 运行 gulp 项目,一切正常