forked from cmda-minor-web/progressive-web-apps-2021
/
app.js
50 lines (47 loc) · 1.27 KB
/
app.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
// Imports and handlebars setup
const express = require('express')
const app = express()
const path = require('path')
const compression = require('compression')
const expressHandlebars = require('express-handlebars')
const router = require('./src/routes/router')
const templates = path.join(__dirname, 'src/views')
const port = process.env.PORT || 2222
const hbs = expressHandlebars.create({
defaultLayout: 'main',
layoutsDir: path.join(__dirname, './src/views/layouts'),
partialsDir: './src/views/components',
extname: '.hbs',
helpers: {
listen: (input) => {
return console.log(input)
},
},
})
// Middleware
app
.enable('trust proxy')
.engine('.hbs', hbs.engine)
.set('view engine', '.hbs')
.set('views', templates)
.use(express.static('dist'))
.use(router)
.use(compression())
.use((request, response, next) => {
if (process.env.NODE_ENV != 'development' && !request.secure) {
return response.redirect('https://' + request.headers.host + request.url)
}
next()
})
// Launch application
app.listen(port, function () {
console.log(`App can be opened on http://localhost:${port}`)
})
// critical.generate({
// inline: true,
// base: 'dist/',
// src: '/',
// target: 'index-critical.html',
// width: 1300,
// height: 900,
// })