Browse Source

manually load BrowserSync in dev environments

We are simply no longer using the BrowserSync proxy and will be loading
directly from Express in dev.
develop
Rob Colbert 2 years ago
parent
commit
43464cefb0
  1. 3
      app/views/layouts/main.pug
  2. 9
      gulpfile.js
  3. 17
      lib/site-platform.js

3
app/views/layouts/main.pug

@ -89,6 +89,9 @@ html(lang='en')
script(src=`/numeral/numeral.min.js?v=${pkg.version}`) script(src=`/numeral/numeral.min.js?v=${pkg.version}`)
script(src=`/socket.io/socket.io.js?v=${pkg.version}`) script(src=`/socket.io/socket.io.js?v=${pkg.version}`)
if process.env.NODE_ENV !== 'production'
script(src="https://localhost:3310/browser-sync/browser-sync-client.js?v=2.27.7")
block vendorjs block vendorjs
script. script.

9
gulpfile.js

@ -24,12 +24,15 @@ function util_start_browsersync ( ) {
proxy: { proxy: {
target: 'https://dev.base.digitaltelepresence.com:3410', target: 'https://dev.base.digitaltelepresence.com:3410',
ws: true, ws: true,
reqHeaders: {
'X-Forwarded-For': '127.0.0.1, 127.0.0.1',
},
}, },
host: 'dev.base.digitaltelepresence.com', host: 'dev.base.digitaltelepresence.com',
open: 'local', open: 'external',
https: { https: {
key: path.join(__dirname, 'ssl', 'dtp-webapp.key'), key: path.join(__dirname, 'ssl', 'dtp-base.key'),
cert: path.join(__dirname, 'ssl', 'dtp-webapp.crt'), cert: path.join(__dirname, 'ssl', 'dtp-base.crt'),
}, },
port: 3310, port: 3310,
cors: true, cors: true,

17
lib/site-platform.js

@ -202,6 +202,7 @@ module.exports.startPlatform = async (dtp) => {
}; };
module.exports.startWebServer = async (dtp) => { module.exports.startWebServer = async (dtp) => {
const IS_PRODUCTION = (process.env.NODE_ENV === 'production');
dtp.app = module.app = express(); dtp.app = module.app = express();
module.app.set('views', path.join(dtp.config.root, 'app', 'views')); module.app.set('views', path.join(dtp.config.root, 'app', 'views'));
@ -288,6 +289,7 @@ module.exports.startWebServer = async (dtp) => {
/* /*
* Express sessions * Express sessions
*/ */
module.log.info('initializing redis session store'); module.log.info('initializing redis session store');
var sessionStore = new RedisSessionStore({ client: module.redis }); var sessionStore = new RedisSessionStore({ client: module.redis });
@ -296,19 +298,28 @@ module.exports.startWebServer = async (dtp) => {
name: `dtp:${process.env.DTP_SITE_DOMAIN_KEY}.${process.env.NODE_ENV}`, name: `dtp:${process.env.DTP_SITE_DOMAIN_KEY}.${process.env.NODE_ENV}`,
secret: process.env.HTTP_SESSION_SECRET, secret: process.env.HTTP_SESSION_SECRET,
resave: true, resave: true,
proxy: IS_PRODUCTION,
saveUninitialized: true, saveUninitialized: true,
cookie: { cookie: {
domain: process.env.DTP_SITE_DOMAIN, domain: process.env.DTP_SITE_DOMAIN_KEY,
path: '/', path: '/',
httpOnly: true, httpOnly: true,
secure: process.env.HTTP_COOKIE_SECURE === 'enabled', secure: true,
sameSite: process.env.HTTP_COOKIE_SAMESITE || false, sameSite: process.env.HTTP_COOKIE_SAMESITE || false,
expires: SESSION_DURATION, expires: SESSION_DURATION,
}, },
store: null, store: null,
}; };
module.log.info('configuring session handler', {
domain: module.sessionConfig.cookie.domain,
httpOnly: module.sessionConfig.cookie.httpOnly,
secure: module.sessionConfig.cookie.secure,
sameSite: module.sessionConfig.cookie.sameSite,
expires: module.sessionConfig.cookie.expires,
});
module.sessionConfig.store = sessionStore; module.sessionConfig.store = sessionStore;
if (process.env.NODE_ENV === 'production') { if (IS_PRODUCTION && module.sessionConfig.cookie.secure) {
module.log.info('session will be trusting first proxy');
module.app.set('trust proxy', 1); module.app.set('trust proxy', 1);
} }
module.app.use(session(module.sessionConfig)); module.app.use(session(module.sessionConfig));

Loading…
Cancel
Save