Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // app.server.module.ts
- import { NgModule } from '@angular/core';
- import { ServerModule } from '@angular/platform-server';
- import { ModuleMapLoaderModule } from '@nguniversal/module-map-ngfactory-loader';
- import { AppModule } from './app.module';
- import { AppComponent } from './app.component';
- @NgModule({
- imports: [
- ServerModule,
- ModuleMapLoaderModule,
- AppModule
- ],
- bootstrap: [AppComponent]
- })
- export class AppServerModule {}
- // main.server.ts
- export { AppServerModule } from './app/app.server.module';
- {
- "extends": "../tsconfig.json",
- "compilerOptions": {
- "module": "commonjs",
- },
- "angularCompilerOptions": {
- "entryModule": "app/app.server.module#AppServerModule",
- }
- }
- "server": {
- "builder": "@angular-devkit/build-angular:server",
- "options": {
- "outputPath": "dist-server",
- "main": "src/main.server.ts",
- "tsConfig": "src/tsconfig.server.json"
- },
- }
- // server.ts
- import 'zone.js/dist/zone-node';
- import 'reflect-metadata';
- import { join } from 'path';
- import { readFileSync } from 'fs';
- import { enableProdMode } from '@angular/core';
- import { renderModuleFactory } from '@angular/platform-server';
- import { provideModuleMap } from '@nguniversal/module-map-ngfactory-loader';
- const PORT = Number(process.env.PORT);
- const DIST_FOLDER = join(process.cwd(), 'dist');
- const document = readFileSync(join(DIST_FOLDER, 'index.html')).toString();
- import { AppServerModuleNgFactory, LAZY_MODULE_MAP } from './dist-server/main';
- import * as Koa from 'koa';
- import * as Router from 'koa-router';
- router.get('/*', async (ctx: Koa.Context) => {
- const { url } = ctx.request;
- ctx.body = await renderModuleFactory(AppServerNgModuleFactory, {
- document,
- url,
- extraProviders: [provideModuleMap(LAZY_MODULE_MAP)]
- });
- });
- app.use(router.routes());
- app.listen(PORT, () => {
- console.log(`Koa server is running and listening at port ${PORT}`);
- });
Add Comment
Please, Sign In to add comment