Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Angular Uncaught TypeError: e is not a constructor after build --prod (work on ng serve)

I have a problem while uploading my angular application to production . The application works just fine in development and used to work before on production too.

To build my application I'm using:

ng build --prod --base-href="/site/" 

The application is built, but with the following warnings:

WARNING in ./src/app/eco-header/eco-header.component.ngfactory.js 138:299-319 "export 'MAT_ICON_LOCATION' (imported as 'i9') was not found in '@angular/material/icon'

WARNING in ./node_modules/@angular/material/dialog/typings/index.ngfactory.js 20:1247-1265 "export 'ScrollingModule' (imported as 'i7') was not found in '@angular/cdk/scrolling'

WARNING in ./node_modules/@angular/material/dialog/typings/index.ngfactory.js 20:1267-1285 "export 'ScrollingModule' (imported as 'i7') was not found in '@angular/cdk/scrolling'

WARNING in ./node_modules/@angular/material/icon/typings/index.ngfactory.js 20:327-347 "export 'MAT_ICON_LOCATION' (imported as 'i1') was not found in '@angular/material/icon'

When I try to load the page, I get the following error:

Uncaught TypeError: e is not a constructor
    at main.1ebe20842d3713f62535.js:1
    at Wl (main.1ebe20842d3713f62535.js:1)
    at main.1ebe20842d3713f62535.js:1
    at new t (main.1ebe20842d3713f62535.js:1)
    at Object.dr [as createNgModuleRef] (main.1ebe20842d3713f62535.js:1)
    at e.create (main.1ebe20842d3713f62535.js:1)
    at main.1ebe20842d3713f62535.js:1
    at e.invoke (polyfills.c72d3210425a88b28b6d.js:1)
    at Object.onInvoke (main.1ebe20842d3713f62535.js:1)
    at e.invoke (polyfills.c72d3210425a88b28b6d.js:1)

My tsconfig:

{
    "compilerOptions": {
        "experimentalDecorators": true,
        "allowJs": true,
        "sourceMap": true
    }
}

My package.json:

{   "name": "idea-ecomanager-frontend",   "version": "0.0.0",   "scripts": {
"ng": "ng",
"start": "ng serve",
"build": "ng build",
"test": "ng test",
"lint": "ng lint",
"e2e": "ng e2e"   },   "private": true,   "dependencies": {
"@angular/animations": "^7.0.1",
"@angular/cdk": "^7.0.2",
"@angular/common": "^7.0.1",
"@angular/compiler": "^7.0.1",
"@angular/core": "^7.0.1",
"@angular/forms": "^7.0.1",
"@angular/http": "^7.0.1",
"@angular/material": "^7.0.2",
"@angular/platform-browser": "^7.0.1",
"@angular/platform-browser-dynamic": "^7.0.1",
"@angular/router": "^7.0.1",
"angularcli": "^6.0.1",
"bootstrap": "^4.1.3",
"core-js": "^2.5.4",
"ngx-loading": "^3.0.1",
"ngx-toastr": "^9.1.1",
"rxjs": "^6.3.3",
"zone.js": "^0.8.26"   },   "devDependencies": {
"@angular-devkit/build-angular": "~0.6.0",
"@angular/cli": "^6.0.8",
"@angular/compiler-cli": "^7.0.1",
"@angular/language-service": "^7.0.1",
"@types/jasmine": "~2.8.6",
"@types/jasminewd2": "~2.0.3",
"@types/node": "~8.9.4",
"codelyzer": "~4.2.1",
"jasmine-core": "~2.99.1",
"jasmine-spec-reporter": "~4.2.1",
"karma": "~1.7.1",
"karma-chrome-launcher": "~2.2.0",
"karma-coverage-istanbul-reporter": "~1.4.2",
"karma-jasmine": "~1.1.1",
"karma-jasmine-html-reporter": "^0.2.2",
"protractor": "~5.3.0",
"ts-node": "~5.0.1",
"tslint": "~5.9.1",
"typescript": "~3.1.3"   } }

Any idea why this is happening?

like image 457
Or Yaacov Avatar asked Nov 21 '18 18:11

Or Yaacov


2 Answers

after a long time of trying, I discovered that there is an open bug at angular cli

https://github.com/angular/angular-cli/issues/9929

ng build --prod --base-href="/site/" --aot=false --build-optimizer=false

and for now using --aot=false --build-optimizer=false temporarily solves the problem.

Ill keep the post updated with official the information and solution that angular team will provide.

like image 192
Or Yaacov Avatar answered Nov 16 '22 00:11

Or Yaacov


we also got same issue.Once remove all the node modules and install one by one node modules.After installing every node module enter ng build --prod it may help.In one project we got that error in ngx password toggle node module.

like image 31
Ganesh Goud Avatar answered Nov 16 '22 00:11

Ganesh Goud