Maverik
Maverik

Reputation: 421

TypeError: Cannot read property 'getDOM' of undefined

I have implemented a angular 2 + asp .net core project. Now I am trying to upgrade it to Angular 4.0. My package.json is

{
  "name": "Angular2Spa",
  "version": "0.0.0",
  "dependencies": {
    "@angular/common": "4.0.2",
    "@angular/compiler": "4.0.2",
    "@angular/core": "4.0.2",
    "@angular/forms": "4.0.2",
    "@angular/http": "4.0.2",
    "@angular/animations": "4.0.2",
    "@angular/platform-browser": "4.0.2",
    "@angular/platform-browser-dynamic": "4.0.2",
    "@angular/platform-server": "^2.4.5",
    "@angular/router": "4.0.2",
    "@types/node": "^6.0.42",
    "angular2-platform-node": "~2.0.10",
    "angular2-universal": "~2.0.10",
    "angular2-universal-polyfills": "~2.0.10",
    "aspnet-prerendering": "^1.0.6",
    "aspnet-webpack": "^1.0.11",
    "bootstrap": "^3.3.7",
    "css": "^2.2.1",
    "css-loader": "^0.25.0",
    "es6-shim": "^0.35.1",
    "expose-loader": "^0.7.1",
    "extract-text-webpack-plugin": "^1.0.1",
    "file-loader": "^0.9.0",
    "isomorphic-fetch": "^2.2.1",
    "jquery": "^2.2.1",
    "ng2-validation": "^3.9.1",
    "preboot": "^4.5.2",
    "raw-loader": "^0.5.1",
    "rxjs": "5.0.0-beta.12",
    "style-loader": "^0.13.0",
    "to-string-loader": "^1.1.5",
    "ts-loader": "^0.8.2",
    "typescript": "^2.0.0",
    "url-loader": "^0.5.7",
    "webpack-externals-plugin": "^1.0.0",
    "webpack": "2.2.0",
    "webpack-hot-middleware": "2.12.2",
    "webpack-merge": "4.1.0",
    "zone.js": "0.8.5"
  },
  "devDependencies": {
    "webpack": "2.2.0"
  }
}

I am getting the error

Cannot read property 'getDOM' of undefined

in node_modules\angular2-platform-node\get-dom.js file, which contains following code:

var platform_browser_1 = require('@angular/platform-browser');
var getDOM = platform_browser_1.__platform_browser_private__.getDOM;
exports.getDOM = getDOM;

Please advise.

Upvotes: 1

Views: 1908

Answers (1)

SrAxi
SrAxi

Reputation: 20005

I think you may have a mix here...

Try removing

"angular2-platform-node": "~2.0.10",
"angular2-universal": "~2.0.10",
"angular2-universal-polyfills": "~2.0.10",

And execute:

npm install @angular/common@latest @angular/compiler@latest @angular/core@latest @angular/forms@latest @angular/http@latest @angular/platform-browser@latest @angular/platform-browser-dynamic@latest @angular/platform-server@latest @angular/router@latest @angular/animations@latest --save

Make sure you then have an updated package.json.

This "@angular/platform-server": "^2.4.5", should not occur if you migrated to version 4. I personally use this: "@angular/platform-server": "^4.0.1",.

The thing is that you don't have to have a mix of RCs. Make sure you have all or in version 4 or in version 2. I know migrating can be quite annoying.

Here are 2 very useful links to migrate:

Upvotes: 1

Related Questions