diff --git a/aio/content/guide/ivy.md b/aio/content/guide/ivy.md
index ca52777d4c..4865baebed 100644
--- a/aio/content/guide/ivy.md
+++ b/aio/content/guide/ivy.md
@@ -60,7 +60,8 @@ Before disabling Ivy, check out the debugging recommendations in the [Ivy Compat
To opt out of Ivy, change the `angularCompilerOptions` in your project's TypeScript configuration, most commonly located at `tsconfig.app.json` at the root of the workspace.
-The value of the `enableIvy` flag is set to `true` by default, as of version 9.
+The value of the `enableIvy` flag is set to `true` by default, as of version 9.
+
The following example shows how to set the `enableIvy` option to `false` in order to opt out of Ivy.
@@ -70,17 +71,94 @@ The following example shows how to set the `enableIvy` option to `false` in orde
"outDir": "./out-tsc/app",
"types": []
},
+ "files": [
+ "src/main.ts",
+ "src/polyfills.ts"
+ ],
"include": [
- "src/**/*.ts"
+ "src/**/*.d.ts"
],
- "exclude": [
- "src/test.ts",
- "src/**/*.spec.ts"
- ],
-"angularCompilerOptions": {
- "enableIvy": false
- }
+ "angularCompilerOptions": {
+ "enableIvy": false
+ }
}
-If you disable Ivy, you might also want to reconsider whether to make AOT compilation the default for your application development, as described [above](#aot-and-ivy). To revert the compiler default, set the build option `aot: false` in the `angular.json` configuration file.
\ No newline at end of file
+
+
+If you disable Ivy, you might also want to reconsider whether to make AOT compilation the default for your application development, as described [above](#aot-and-ivy).
+
+To revert the compiler default, set the build option `aot: false` in the `angular.json` configuration file.
+
+
+
+{@a using-ssr-without-angular-ivy}
+## Using SSR without Ivy
+
+If you opt out of Ivy and your application uses [Angular Universal](guide/universal) to render Angular applications on the server, you must also change the way the server performs bootstrapping.
+
+The following example shows how you modify the `server.ts` file to provide the `AppServerModuleNgFactory` as the bootstrap module.
+
+* Import `AppServerModuleNgFactory` from the `app.server.module.ngfactory` virtual file.
+* Set `bootstrap: AppServerModuleNgFactory` in the `ngExpressEngine` call.
+
+
+import 'zone.js/dist/zone-node';
+
+import { ngExpressEngine } from '@nguniversal/express-engine';
+import * as express from 'express';
+import { join } from 'path';
+
+import { APP_BASE_HREF } from '@angular/common';
+
+import { AppServerModuleNgFactory } from './src/app/app.server.module.ngfactory';
+
+// The Express app is exported so that it can be used by serverless Functions.
+export function app() {
+ const server = express();
+ const distFolder = join(process.cwd(), 'dist/ivy-test/browser');
+
+ // Our Universal express-engine (found @ https://github.com/angular/universal/tree/master/modules/express-engine)
+ server.engine('html', ngExpressEngine({
+ bootstrap: AppServerModuleNgFactory,
+ }));
+
+ server.set('view engine', 'html');
+ server.set('views', distFolder);
+
+ // Example Express Rest API endpoints
+ // app.get('/api/**', (req, res) => { });
+ // Serve static files from /browser
+ server.get('*.*', express.static(distFolder, {
+ maxAge: '1y'
+ }));
+
+ // All regular routes use the Universal engine
+ server.get('*', (req, res) => {
+ res.render('index', { req, providers: [{ provide: APP_BASE_HREF, useValue: req.baseUrl }] });
+ });
+
+ return server;
+}
+
+function run() {
+ const port = process.env.PORT || 4000;
+
+ // Start up the Node server
+ const server = app();
+ server.listen(port, () => {
+ console.log(`Node Express server listening on http://localhost:${port}`);
+ });
+}
+
+// Webpack will replace 'require' with '__webpack_require__'
+// '__non_webpack_require__' is a proxy to Node 'require'
+// The below code is to ensure that the server is run only when not requiring the bundle.
+declare const __non_webpack_require__: NodeRequire;
+const mainModule = __non_webpack_require__.main;
+if (mainModule && mainModule.filename === __filename) {
+ run();
+}
+
+export * from './src/main.server';
+
\ No newline at end of file