Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cannot assign to read only property 'stopImmediatePropagation' of object '[object Object]' #11273

Closed
kushal-gbk opened this issue Jun 16, 2018 · 9 comments

Comments

@kushal-gbk
Copy link

Bug Report or Feature Request (mark with an x)

- [x] bug report -> please search issues before submitting
- [ ] feature request

Area

- [x] devkit
- [ ] schematics

Versions

node version v9.8.0
npm version 5.6.0
Linux Ubuntu 16.04

Repro steps

  1. Integrate Angular Universal just like the implementation from https://angular.io/guide/universal , I also checked sample implementation project https://angular.io/generated/zips/universal/universal.zip
  2. npm run build: ssr , works fine
  3. npm run serve:ssr , it runs fine
  4. localhost:4000 from browser , throws this error

The log given by the failure

ERROR TypeError: Cannot assign to read only property 'stopImmediatePropagation' of object '[object Object]'
at DomEventsPlugin.patchEvent (/home/kushalgbk/Desktop/savemonk/savemonkWebsite/Savemonk-Mobile-Website-V2.0/dist/server.js:84969:50)
at new DomEventsPlugin (/home/kushalgbk/Desktop/savemonk/savemonkWebsite/Savemonk-Mobile-Website-V2.0/dist/server.js:84956:15)
at /home/kushalgbk/Desktop/savemonk/savemonkWebsite/Savemonk-Mobile-Website-V2.0/dist/server.js:60393:1533
at _callFactory (/home/kushalgbk/Desktop/savemonk/savemonkWebsite/Savemonk-Mobile-Website-V2.0/dist/server.js:13158:28)
at _createProviderInstance$1 (/home/kushalgbk/Desktop/savemonk/savemonkWebsite/Savemonk-Mobile-Website-V2.0/dist/server.js:13104:26)
at resolveNgModuleDep (/home/kushalgbk/Desktop/savemonk/savemonkWebsite/Savemonk-Mobile-Website-V2.0/dist/server.js:13067:21)
at _createClass (/home/kushalgbk/Desktop/savemonk/savemonkWebsite/Savemonk-Mobile-Website-V2.0/dist/server.js:13131:29)
at _createProviderInstance$1 (/home/kushalgbk/Desktop/savemonk/savemonkWebsite/Savemonk-Mobile-Website-V2.0/dist/server.js:13101:26)
at resolveNgModuleDep (/home/kushalgbk/Desktop/savemonk/savemonkWebsite/Savemonk-Mobile-Website-V2.0/dist/server.js:13067:21)
at _createClass (/home/kushalgbk/Desktop/savemonk/savemonkWebsite/Savemonk-Mobile-Website-V2.0/dist/server.js:13137:32)
TypeError: Cannot assign to read only property 'stopImmediatePropagation' of object '[object Object]'
at DomEventsPlugin.patchEvent (/home/kushalgbk/Desktop/savemonk/savemonkWebsite/Savemonk-Mobile-Website-V2.0/dist/server.js:84969:50)
at new DomEventsPlugin (/home/kushalgbk/Desktop/savemonk/savemonkWebsite/Savemonk-Mobile-Website-V2.0/dist/server.js:84956:15)
at /home/kushalgbk/Desktop/savemonk/savemonkWebsite/Savemonk-Mobile-Website-V2.0/dist/server.js:60393:1533
at _callFactory (/home/kushalgbk/Desktop/savemonk/savemonkWebsite/Savemonk-Mobile-Website-V2.0/dist/server.js:13158:28)
at _createProviderInstance$1 (/home/kushalgbk/Desktop/savemonk/savemonkWebsite/Savemonk-Mobile-Website-V2.0/dist/server.js:13104:26)
at resolveNgModuleDep (/home/kushalgbk/Desktop/savemonk/savemonkWebsite/Savemonk-Mobile-Website-V2.0/dist/server.js:13067:21)
at _createClass (/home/kushalgbk/Desktop/savemonk/savemonkWebsite/Savemonk-Mobile-Website-V2.0/dist/server.js:13131:29)
at _createProviderInstance$1 (/home/kushalgbk/Desktop/savemonk/savemonkWebsite/Savemonk-Mobile-Website-V2.0/dist/server.js:13101:26)
at resolveNgModuleDep (/home/kushalgbk/Desktop/savemonk/savemonkWebsite/Savemonk-Mobile-Website-V2.0/dist/server.js:13067:21)
at _createClass (/home/kushalgbk/Desktop/savemonk/savemonkWebsite/Savemonk-Mobile-Website-V2.0/dist/server.js:13137:32)

Desired functionality

Anything wrong in server.ts? Am I missing anything from docs? I couldn't anything about this error anywhere.

Mention any other details that might be useful

server.ts
// These are important and needed before anything else
import 'zone.js/dist/zone-node';
import 'reflect-metadata';

import { enableProdMode } from '@angular/core';

import * as express from 'express';
import { join } from 'path';

// Faster server renders w/ Prod mode (dev mode never needed)
enableProdMode();

// Express server
const app = express();

const PORT = process.env.PORT || 4000;
const DIST_FOLDER = join(process.cwd(), 'dist');

// * NOTE :: leave this as require() since this file is built Dynamically from webpack
const { AppServerModuleNgFactory, LAZY_MODULE_MAP } = require('./dist/server/main');

// Express Engine
import { ngExpressEngine } from '@nguniversal/express-engine';
// Import module map for lazy loading
import { provideModuleMap } from '@nguniversal/module-map-ngfactory-loader';

app.engine('html', ngExpressEngine({
bootstrap: AppServerModuleNgFactory,
providers: [
provideModuleMap(LAZY_MODULE_MAP)
]
}));

app.set('view engine', 'html');
app.set('views', join(DIST_FOLDER, 'browser'));

// TODO: implement data requests securely
app.get('/api/*', (req, res) => {
res.status(404).send('data requests are not supported');
});

// Server static files from /browser
app.get('.', express.static(join(DIST_FOLDER, 'browser')));

// All regular routes use the Universal engine
app.get('*', (req, res) => {
res.render('index', { req });
});

// Start up the Node server
app.listen(PORT, () => {
console.log(Node server listening on http://localhost:${PORT});
});

@vloginov-pravo
Copy link

I see this error too

@ishan123456789
Copy link

Same for me

@vloginov-pravo
Copy link

I've 'solved' the issue: took Angular Universal Starter and put my components and stuff there. Now it works.

@ishan123456789
Copy link

A lot of headache though half of my development time is getting wasted in managing packages and other stuff that can't be really called development.

@kushal-gbk
Copy link
Author

@vloginov-pravo Any changes did you notice from the one on official documentation?

@kushal-gbk
Copy link
Author

I followed Angular Universal Starter project as suggested by @vloginov-pravo . It worked fine.
The official documentation doesn't mention to add ServerTransferStateModule in app.server.module.ts
That made the difference.
I am closing this issue.

@mailtovinay
Copy link

Even i followed Angular Universal Starter project as suggested by @vloginov-pravo . i have added my source to it.
It worked fine.

Thanks @vloginov-pravo

@takahser
Copy link

takahser commented Aug 21, 2018

as suggested in this tutorial, be sure to import both:

  • ServerTransferStateModule into the server module and
  • BrowserTransferStateModule into the client module
// src/app/app.server.module.ts
import {ServerTransferStateModule} from '@angular/platform-server';
[...]
@NgModule({
  imports: [
    AppModule,
    ServerModule,
    ServerTransferStateModule
  ],
  bootstrap: [AppComponent],
})
export class AppServerModule {}

// src/app/app.module.ts
import { BrowserTransferStateModule } from '@angular/platform-browser';
[...]
@NgModule({
  declarations: [
    AppComponent, CityComponent
  ],
  imports: [
    BrowserModule.withServerTransition({ appId: 'ng-demo-transfer-state-app' }),
    BrowserTransferStateModule,
  [...]

Edit

Also, make sure, your packages are up to date. In my case, I had to upgrade them to:

  "dependencies": {
    "@angular/animations": "^6.1.3",
    "@angular/common": "^6.1.3",
    "@angular/compiler": "^6.1.3",
    "@angular/core": "^6.1.3",
    "@angular/forms": "^6.1.3",
    "@angular/http": "^6.1.3",
    "@angular/platform-browser": "^6.1.3",
    "@angular/platform-browser-dynamic": "^6.1.3",
    "@angular/router": "^6.1.3",
    "rxjs": "^6.2.2"
  },
  "devDependencies": {
    "@angular/cli": "~6.1.4",
    "@angular/compiler-cli": "^6.1.3",
    "@angular/language-service": "^6.1.3",
    "tslint": "~5.9.1",
    "typescript": "~2.9.2",
    "webpack-cli": "^3.1.0"
  }

@angular-automatic-lock-bot
Copy link

This issue has been automatically locked due to inactivity.
Please file a new issue if you are encountering a similar or related problem.

Read more about our automatic conversation locking policy.

This action has been performed automatically by a bot.

@angular-automatic-lock-bot angular-automatic-lock-bot bot locked and limited conversation to collaborators Sep 8, 2019
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

6 participants