I use browser-sync (https://github.com/shakyShane/browser-sync) in my gulp file for development purposes. I want to use html5mode within my angular app. For that server needs to
You can use https://github.com/tinganho/connect-modrewrite.
var modRewrite = require('connect-modrewrite');
gulp.task('serve', function () {
browserSync.init(null, {
server: {
baseDir: [APP_PATH],
middleware: [
modRewrite([
'!\\.\\w+$ /index.html [L]'
])
]
}
});
// watch only for app specific codes;
...
});
From https://github.com/BrowserSync/browser-sync/issues/204#issuecomment-102623643
First install connect-history-api-fallback
:
npm --save-dev install connect-history-api-fallback
Then add it to your gulpfile.js:
var historyApiFallback = require('connect-history-api-fallback');
gulp.task('serve', function() {
browserSync.init({
server: {
baseDir: "app",
middleware: [ historyApiFallback() ]
}
});
});
In version 2.23.0 you can use single
option, like this:
gulp.task('serve', function () {
browserSync.init(null, {
server: {
baseDir: [APP_PATH]
},
single: true
});
// watch only for app specific codes;
...
});
Reference: https://browsersync.io/docs/options#option-single