Open albertsanchez opened 6 years ago
1+
+1
+1
Hi guys,
Try this in your server.js.
The getBrowserLang is getting from window.navigator.language which is not available at server side. Just define some value for it ;)
const domino = require('domino');
const fs = require('fs');
const template = fs.readFileSync(path.join(__dirname, '../dist/browser/index.html')).toString();
const win = domino.createWindow(template);
win.navigator.language='en';
global['window'] = win;
global['document'] = win.document;
I have the same proyect, and after this modification on my server.ts file:
${process.cwd()}/dist-server
);
global['window'] = win;
Object.defineProperty(win.document.body.style, 'transform', {
value: () => {
return {
enumerable: true,
configurable: true
};
},
});
global['document'] = win.document;
global['CSS'] = null;
global['XMLHttpRequest'] = require('xmlhttprequest').XMLHttpRequest;
global['Prism'] = null;
win.navigator.language='en';I received this error after execute npm run generate:prerender:
node prerender.js
could anyone hepls me???
Thanks in advance.
Hi @mgutbor you are supposed to put the win.navigator.language before you declare the global window variable.
win.navigator.language='en'; global['window'] = win;
@Alvin-Voo It works!!! thanks a lot for your help.
Hi guys,
win.navigator.language='en';
solve that issue but.. I'm receiving:
ERROR [Error]
Any ideas what can be happening here?
@BruneXX post full error or screenshot
Hi @Ilyoskhuja that's the only I've got from node console ERROR [Error]
Hi, @BruneXX . Recently I fixed error with "Cannot read property 'indexOf' of undefined " and I have also get another error like this
"Error: renderModule[Factory]() requires the use of BrowserModule.withServerTransition() to ensure the server-rendered app can be properly bootstrapped into a client app." , and found solution from here https://github.com/angular/angular-cli/issues/8384 I added to my app module this solution import { BrowserModule } from '@angular/platform-browser'; ... imports: [ BrowserModule.withServerTransition({ appId: 'ng-universal-demystified' })... ] and now everything working
Thanks @Ilyoskhuja
But unfortunately that is not related to my error, that you've added:
BrowserModule.withServerTransition
is to transition from the server to browser app, AFAIK that must be added for any universal app.
Regards
Error with Angular Universal and angular 5.2.11. When I run "run serve: ssr" and I go to the browser this error appears
Current behavior
ERROR { Error: Uncaught (in promise): TypeError: Cannot read property 'indexOf' of undefined TypeError: Cannot read property 'indexOf' of undefined at TranslateService.getBrowserLang (project/dist/server.js:37892:25) at ManualParserLoader.LocalizeParser._getBrowserLang (/project/dist/server.js:53678:55) at ManualParserLoader.LocalizeParser.init (/project/dist/server.js:53502:32) at /project/dist/server.js:53825:19
Environment