我正在使用gulp-connect 2.0.6
尝试并获得肝脏负荷工作,
WebSocket connection to 'ws://localhost:35729/livereload' failed: Error during WebSocket handshake: Status line contains embedded null
抛出错误的那行写着
this.socket = new this.WebSocket(this._uri);
我将所有相关文件(gulpfile.js
, package.json
等)和控制台输出粘贴在此要点中。
据我所见,你似乎是在跟随我发布的一个视频,我发布了一个D3环境,并运行自动重新加载:https://www.tagtree.tv/d3-episode1-environment
我看了一下要点。为了让这篇文章更容易阅读,我想把你的gulpfile.js的内容拉进来: 你gulpfile.jsvar gulp = require('gulp'),
connect = require('gulp-connect'),
traceur = require('gulp-traceur'),
sass = require('gulp-ruby-sass');
gulp.task('connect', function() {
connect.server({
livereload: true,
port: 8005
});
});
gulp.task('sass', function(){
gulp.src('./sass/*.scss')
.pipe(sass())
.pipe(gulp.dest('dist/css'));
});
gulp.task('watch', function(){
gulp.watch(['./sass/*.scss'], ['sass']);
});
gulp.task('default', ['connect', 'watch', 'sass']);
<<p> 解决方案/strong> 我不知道这是否是严格必要的,但我所做的,当我编码的截屏,是钩一个gulp任务从手表任务调用重新加载连接。
更改监视任务
首先,您需要将您的watch任务更改为如下所示。请注意,该路径使用来自截屏的路径,但使用正确的glob来查看应该触发重新加载的文件。
gulp.task('watch', function(){
gulp.watch(['./sass/*.scss'], ['sass']);
gulp.watch(['./dist/**/*.*'], ['reload']);
});
重新加载任务
reload任务调用connect模块上的reload,该模块在websocket上发布消息,导致文件被重新加载,下面是我的reload任务的样子:
gulp.task('reload', function(){
gulp.src('./dist/**/*.*')
.pipe(connect.reload());
});
gulpfile.js的最终版本
对于任何对屏幕录制有问题的人,请查看gulpfile:
的最终版本。var gulp = require('gulp'),
connect = require('gulp-connect'),
traceur = require('gulp-traceur'),
sass = require('gulp-ruby-sass');
gulp.task('connect', function(){
connect.server({
livereload: true,
port: 8005
});
});
gulp.task('reload', function(){
gulp.src('./dist/**/*.*')
.pipe(connect.reload());
});
gulp.task('sass', function(){
gulp.src('./sass/*.scss')
.pipe(sass())
.pipe(gulp.dest('dist/css'));
});
gulp.task('traceur', function(){
gulp.src('./scripts/*.js')
.pipe(traceur())
.pipe(gulp.dest('dist/scripts'));
});
gulp.task('watch', function(){
gulp.watch(['./sass/*.scss'], ['sass']);
gulp.watch(['./scripts/*.js'], ['traceur']);
gulp.watch(['./dist/**/*.*'], ['reload']);
});
gulp.task('default', ['connect', 'watch', 'sass', 'traceur']);