angular - Angular Uncaught TypeError: e is not a constructor after build --prod (work on ng serve)
问题描述
将我的 Angular 应用程序上传到生产时遇到问题。该应用程序在开发中工作得很好,并且在生产之前也可以工作。
要构建我正在使用的应用程序:
ng build --prod --base-href="/site/"
应用程序已构建,但出现以下警告:
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'
当我尝试加载页面时,出现以下错误:
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)
我的tsconfig
:
{
"compilerOptions": {
"experimentalDecorators": true,
"allowJs": true,
"sourceMap": true
}
}
我的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" } }
知道为什么会这样吗?
解决方案
经过长时间的尝试,我发现angular cli有一个open bug
https://github.com/angular/angular-cli/issues/9929
ng build --prod --base-href="/site/" --aot=false --build-optimizer=false
现在使用--aot=false --build-optimizer=false
暂时解决了这个问题。
生病保持官方更新的帖子角团队将提供的信息和解决方案。
推荐阅读
- c# - 为什么在使用 ASP.NET Core 时,对于等效于工作同步控制器的异步控制器,HttpContext.User.Identity.Name 显示为空?
- arrays - 使用处理随机重新排列图像的部分
- r - 使用 R 中的 data.table 转换多列并返回所有列
- android - 从 SQLitE 数据库加载的数据未保存在模型类 ArrayList android 中
- javascript - 使用 javascript 或 jquery 左右句柄的文本选择
- php - 警告:urlencode() 期望参数 1 是字符串,数组在 ... 在线
- javascript - 无法读取未定义的属性“temp”
- android-studio - 官方 Android Studio 存储库?
- linux - 无法再执行 sudo 命令:分段错误
- php - Codeigniter 使用未定义的常量 SITE_NAME 错误