我想
我想要什么设置一口捆绑我的文件,我修改源代码,并自动重新加载浏览器。我browsersync服务器刷新页面,但与旧的内容
我使用browser-sync
作为我的开发服务器,browserify
将我的javascript文件和gulp
捆绑为我的任务运行器。
什么问题
它工作在第一,但现在当我保存源文件时,浏览器被重新加载,但旧的代码加载和变化不会反映。我需要手动刷新浏览器。
我责怪因子束browserify插件,它基本上将束分成3束--A,B和Common(index.js,tests.js和app.js,在我的情况下,实际的应用程序代码在应用程序中。 JS)。
我有什么到目前为止
gulpfile.js [相关的代码只有]:
关键代码为bundleTypescript
功能
var gulp = require('gulp');
var browserify = require("browserify");
var source = require('vinyl-source-stream');
var buffer = require('vinyl-buffer');
var watchify = require("watchify");
var sourcemaps = require('gulp-sourcemaps');
var tsify = require("tsify");
var gutil = require("gulp-util");
var browserSync = require('browser-sync').create();
var merge = require('merge-stream');
var paths = {
entryPoint: "src/index.ts",
tests: "src/tests.ts",
distDir: "./dist/",
};
var config = {
externalModules: ['react', 'react-dom', 'react-router', 'react-bootstrap']
};
gulp.task('default', ['watch-typescript'], function() {
devServer();
});
function devServer() {
browserSync.init({
server: paths.distDir,
});
}
var bundler = browserify({
basedir: '.',
debug: true,
entries: [paths.entryPoint, paths.tests]
}).plugin(tsify); //can be replaced by watchify in watch-typescript
bundler.external(config.externalModules);
gulp.task("watch-typescript", function() {
var watchedBrowserify = watchify(bundler);
watchedBrowserify.on("update", function() { return bundleTypescript(true); });
watchedBrowserify.on("log", gutil.log);
bundler = watchedBrowserify;
});
function bundleTypescript(isDebug) {
var indexStream = source("index.js");
var testStream = source("tests.js");
bundler.plugin('factor-bundle', { outputs: [indexStream, testStream] });
var appStream = bundler.bundle()
.pipe(source('app.js'));
return merge(appStream, indexStream, testStream)
.pipe(buffer())
.pipe(sourcemaps.init({ debug: true, loadMaps: true }))
.pipe(sourcemaps.write("./"))
.pipe(gulp.dest(paths.distDir + 'scripts')) //output
.pipe(browserSync.stream()); //refresh browser
}
完全吞掉文件可以在这里找到:https://jsfiddle.net/4ajba1nx/
为什么变化不是参考当浏览器同步重新加载浏览器时被引用
我不能告诉你多少,这帮助我!关于这个问题的大多数讨论都是关于触发重新加载的代码。安置是关键!我在sass任务的最后完成了我的管道工作,它是它之前的源映射,这是我的问题。将我的重新加载管道直接移动到我的管道下方后,工作完美无缺。谢谢! –
@ChrisDay我很高兴它的帮助。 – Anass