mon-entreprise/source/server.js

42 lines
1.2 KiB
JavaScript

const express = require('express')
const webpack = require('webpack')
const webpackDevMiddleware = require('webpack-dev-middleware')
const app = express()
const config = require('./webpack.dev.js')
const compiler = webpack(config)
const history = require('connect-history-api-fallback')
const rewrite = basename => ({
from: new RegExp(`^/${basename}/(.*)$|^/${basename}$`),
to: `/${basename}.html`
})
app.get('/', function(req, res) {
res.send(`<ul><li><a href="/mon-entreprise">mon-entreprise [fr]</a></li>
<li><a href="/infrance">infrance [en]</a></li>
<li><a href="/mon-entreprise/dev/integration-test">intégration du simulateur sur site tiers [iframe fr]</a></li><li><a href="/publicodes">publicodes</a></li></ul>`)
})
app.use(
history({
rewrites: ['infrance', 'mon-entreprise', 'publicodes'].map(rewrite)
})
)
// Tell express to use the webpack-dev-middleware and use the webpack.config.js
// configuration file as a base.
app.use(
webpackDevMiddleware(compiler, {
publicPath: config.output.publicPath,
hot: true
})
)
app.use(require('webpack-hot-middleware')(compiler))
app.listen(8080, function() {
// eslint-disable-next-line no-console
console.log('Mon-entreprise listening on port 8080!\n')
})