const PORT = 4000; //require('reflect-metadata'); require('zone.js/dist/zone-node'); const { renderModuleFactory } = require('@angular/platform-server'); const { enableProdMode } = require('@angular/core'); const { join } = require('path'); const express = require('express'); const fs = require('fs'); const { AppServerModuleNgFactory } = require('./dist-ssr/main.bundle'); enableProdMode(); const app = express(); let template = fs.readFileSync('dist/index.html', 'utf8'); app.engine('html', (_, options, callback) => { renderModuleFactory(AppServerModuleNgFactory, { document: template, url: options.req.url }).then(html => callback(null, html)); }); app.set('view engine', 'html'); app.set('views', 'dist') app.get('*.*', express.static(join(__dirname, 'dist'))); app.get('*', (req, res) => { res.render('index', { req }); }); app.listen(PORT, () => { console.log(`listening on http://localhost:${PORT}!`); });