Importing AngularJS 1.6 into Angular-Universal Project
Asked Answered
E

0

11

We have a hybrid Angular6 and AngularJS 1.6 project which we are currently migrating. In this process, we also want to introduce Server Side Rendering (SSR).

The problem is, that the SSR is running in a node environment, so running the SSR/prerendering gets the following error:

npm-run ts-node ./prerender.ts

[..]/node_modules/angular/index.js:2

**module.exports = angular;**

**ReferenceError: angular is not defined**

   at Object.<anonymous> ([..]/node_modules/angular/index.js:2:18)

    at Module._compile (module.js:652:30)
    at Object.Module._extensions..js (module.js:663:10)
    at Module.load (module.js:565:32)
    at tryModuleLoad (module.js:505:12)
    at Function.Module._load (module.js:497:3)
    at Module.require (module.js:596:17)
    at require (internal/module.js:11:18)

    at Object.angular ([..]/dist/server/webpack:/external "angular":1:1)

    at _webpack_require_ 
([..]/dist/server/webpack:/webpack/bootstrap:19:1)

import 'zone.js/dist/zone-node';
import 'reflect-metadata';
import {renderModuleFactory} from '@angular/platform-server';
import {writeFileSync} from 'fs';

const globalAny:any = global;
const Window = require('window');
let window = new Window();
globalAny.window = window;
globalAny.document = window.document;

const {AppServerModuleNgFactory} = require('./dist/server/main');

renderModuleFactory(AppServerModuleNgFactory, {
  document: '<app-root></app-root>',
  url: '/'
})
  .then(html => {
    console.log('Pre-rendering successful, saving prerender.html');
    writeFileSync('./prerender.html', html);
  })
  .catch(error => {
    console.error('Error occurred:', error);
  });

The Project is based on the universal-starter repo: https://github.com/angular/universal-starter

Any suggestions what's going on here?

Eklund answered 6/7, 2018 at 13:42 Comment(2)
Hi! Did you solve this?Melburn
Hi! Interesting question, if you managed to solve it, please share the solution or let us know so we can help! :) ThanksPlacenta

© 2022 - 2024 — McMap. All rights reserved.