我想
我想要什麼設置一口捆綁我的文件,我修改源代碼,並自動重新加載瀏覽器。我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