1
1
import { normalize } from 'path' ;
2
2
import { getGlobalVariable } from '../../utils/env' ;
3
- import { expectFileToMatch , writeFile , appendToFile } from '../../utils/fs' ;
3
+ import { expectFileToMatch , writeFile } from '../../utils/fs' ;
4
4
import { exec , ng , silentNpm } from '../../utils/process' ;
5
5
import { updateJsonFile } from '../../utils/project' ;
6
6
import { readNgVersion } from '../../utils/version' ;
7
7
8
8
export default async function ( ) {
9
- // Skip this test in Angular 2/4.
10
- if ( getGlobalVariable ( 'argv' ) . ng2 || getGlobalVariable ( 'argv' ) . ng4 ) {
11
- return ;
12
- }
9
+ const argv = getGlobalVariable ( 'argv' ) ;
10
+ const veEnabled = argv [ 've' ] ;
13
11
14
12
await ng ( 'add' , '@nguniversal/express-engine' , '--client-project' , 'test-project' ) ;
15
13
@@ -21,28 +19,43 @@ export default async function () {
21
19
} ) ;
22
20
23
21
await silentNpm ( 'install' ) ;
24
- await appendToFile (
25
- 'src/main.server.ts' ,
26
- `export { renderModuleFactory } from '@angular/platform-server';` ,
27
- ) ;
22
+ if ( veEnabled ) {
23
+ await replaceInFile ( 'src/main.server.ts' , / r e n d e r M o d u l e / g, 'renderModuleFactory' ) ;
24
+ await writeFile (
25
+ './index.js' ,
26
+ ` require('zone.js/dist/zone-node');
27
+ const fs = require('fs');
28
+ const { AppServerModuleNgFactory, renderModuleFactory } = require('./dist/server/main');
29
+
30
+ renderModuleFactory(AppServerModuleNgFactory, {
31
+ url: '/',
32
+ document: '<app-root></app-root>'
33
+ }).then(html => {
34
+ fs.writeFileSync('dist/server/index.html', html);
35
+ });
36
+ ` ,
37
+ ) ;
38
+ } else {
39
+ await writeFile (
40
+ './index.js' ,
41
+ ` require('zone.js/dist/zone-node');
42
+ const fs = require('fs');
43
+ const { AppServerModule, renderModule } = require('./dist/server/main');
44
+
45
+ renderModule(AppServerModule, {
46
+ url: '/',
47
+ document: '<app-root></app-root>'
48
+ }).then(html => {
49
+ fs.writeFileSync('dist/server/index.html', html);
50
+ });
51
+ ` ,
52
+ ) ;
53
+ }
28
54
29
- await writeFile (
30
- './index.js' ,
31
- ` require('zone.js/dist/zone-node');
32
- const fs = require('fs');
33
- const { AppServerModuleNgFactory, renderModuleFactory } = require('./dist/server/main');
34
-
35
- renderModuleFactory(AppServerModuleNgFactory, {
36
- url: '/',
37
- document: '<app-root></app-root>'
38
- }).then(html => {
39
- fs.writeFileSync('dist/server/index.html', html);
40
- });
41
- ` ,
42
- ) ;
43
55
44
56
await ng ( 'run' , 'test-project:server:production' ) ;
45
- await expectFileToMatch ( 'dist/server/main.js' , / e x p o r t s .* A p p S e r v e r M o d u l e N g F a c t o r y / ) ;
57
+
58
+ await expectFileToMatch ( 'dist/server/main.js' , veEnabled ? / e x p o r t s .* A p p S e r v e r M o d u l e N g F a c t o r y / : / e x p o r t s .* A p p S e r v e r M o d u l e / ) ;
46
59
await exec ( normalize ( 'node' ) , 'index.js' ) ;
47
60
await expectFileToMatch (
48
61
'dist/server/index.html' ,
0 commit comments