ERR_CONTENT_LENGTH_MISMATCH 在 browsersync.reload
ERR_CONTENT_LENGTH_MISMATCH on browsersync.reload
捆绑完成后,我正在使用 browsersync.reload()。
第一次,它运行良好,但在 App 变大后,网页无法加载 JavaScript 重新加载时显示此消息:
GET http://localhost:4000/js/bundle.js net::ERR_CONTENT_LENGTH_MISMATCH
这是我的 gulpfile.js 代码:
function serve() {
let serverStarted = false;
nodemon({ script: 'server.js' })
.on('start', () => {
if(!serverStarted) {
serverStarted = true;
browserSync.init(null, {
proxy: `localhost:${config.port || 3000}`,
port: config.proxyPort || 4000
});
gulp.watch(`${SRC_DIR}/html/**`, buildHtml);
gulp.watch(`${SRC_DIR}/scss/**`, buildScss);
gulp.watch(`${BUILD_DIR}/html/index.html`).on('change', browserSync.reload);
// return empty stream
return gutil.noop();
}
});
}
我正在使用 browser-sync 快递,所以我使用了代理。下面的代码是脚本的捆绑部分:
function buildJs() {
const b = persistify()
.add(`${SRC_DIR}/js/index.js`)
.on('update', bundle)
.on('log', gutil.log)
function bundle() {
let stream = b.bundle()
.on('error', swallowError)
.on('end', () => {
gutil.log(`Building JS:bundle done.`);
browserSync.reload();
})
.pipe(source('bundle.js'));
return stream.pipe(gulp.dest(`${BUILD_DIR}/js`));
}
return bundle();
}
我正在使用 persistify 进行快速构建,它与 watchify 一起使用,所以我没有使用 watch。如您所见,'end' 事件在捆绑完成时触发,我调用了 browerSync.reload 来重新加载页面。
重新加载本身没有问题,但加载失败 JavaScript 正如我标题所说。
持久化触发的结束事件这么早吗?还是 express/browser-sync 的某种问题?
我只能猜测结束事件已触发但流仍在写入文件,因此实际文件大小不正确并拒绝获取。
我故意在 browsersync.reload() 之前延迟了一些,它有效,但我不想这样做。
有什么我遗漏的吗?还是我做错了方法?任何建议将不胜感激。
我在浏览器同步开始后通过执行转译 JavaScript 解决了这个问题。
我仍然不知道为什么会这样,但似乎脚本正在转换并且浏览器在它仍在工作时尝试访问。
捆绑完成后,我正在使用 browsersync.reload()。 第一次,它运行良好,但在 App 变大后,网页无法加载 JavaScript 重新加载时显示此消息:
GET http://localhost:4000/js/bundle.js net::ERR_CONTENT_LENGTH_MISMATCH
这是我的 gulpfile.js 代码:
function serve() {
let serverStarted = false;
nodemon({ script: 'server.js' })
.on('start', () => {
if(!serverStarted) {
serverStarted = true;
browserSync.init(null, {
proxy: `localhost:${config.port || 3000}`,
port: config.proxyPort || 4000
});
gulp.watch(`${SRC_DIR}/html/**`, buildHtml);
gulp.watch(`${SRC_DIR}/scss/**`, buildScss);
gulp.watch(`${BUILD_DIR}/html/index.html`).on('change', browserSync.reload);
// return empty stream
return gutil.noop();
}
});
}
我正在使用 browser-sync 快递,所以我使用了代理。下面的代码是脚本的捆绑部分:
function buildJs() {
const b = persistify()
.add(`${SRC_DIR}/js/index.js`)
.on('update', bundle)
.on('log', gutil.log)
function bundle() {
let stream = b.bundle()
.on('error', swallowError)
.on('end', () => {
gutil.log(`Building JS:bundle done.`);
browserSync.reload();
})
.pipe(source('bundle.js'));
return stream.pipe(gulp.dest(`${BUILD_DIR}/js`));
}
return bundle();
}
我正在使用 persistify 进行快速构建,它与 watchify 一起使用,所以我没有使用 watch。如您所见,'end' 事件在捆绑完成时触发,我调用了 browerSync.reload 来重新加载页面。
重新加载本身没有问题,但加载失败 JavaScript 正如我标题所说。
持久化触发的结束事件这么早吗?还是 express/browser-sync 的某种问题?
我只能猜测结束事件已触发但流仍在写入文件,因此实际文件大小不正确并拒绝获取。
我故意在 browsersync.reload() 之前延迟了一些,它有效,但我不想这样做。
有什么我遗漏的吗?还是我做错了方法?任何建议将不胜感激。
我在浏览器同步开始后通过执行转译 JavaScript 解决了这个问题。
我仍然不知道为什么会这样,但似乎脚本正在转换并且浏览器在它仍在工作时尝试访问。