首页 > 解决方案 > Angular 4:ng serve 运行良好,但 ng build --prod 失败

问题描述

当我尝试运行ng serve它时,它运行时没有任何错误,但是当我尝试使用 ' ng build --prod' 创建生产版本时,它停止并出现以下错误。我试图调整版本仍然没有成功。然后发生了一些其他问题,例如其他 API 版本兼容性问题。任何帮助将不胜感激。

./src/main.ts 中的错误 找不到模块:错误:无法解析 'D:\000PS\workspace_ui\dashboard\src' 中的 './$$_gendir/app/app.module.ngfactory' 错误中的错误:模块 D:/000PS/workspace_ui/dashboard/node_modules/ngx-pipes/src/app/index.d.ts 的元数据版本不匹配,在 StaticSymbolResolver.getModuleMetadata (D:\000PS\workspace_ui\dashboard 找到版本 4,预期为 3 \node_modules\@angular\compiler\bundles\compiler.umd.js:25755:34) 在 StaticSymbolResolver._createSymbolsOf (D:\000PS\workspace_ui\dashboard\node_modules\@angular\compiler\bundles\compiler.umd.js:25543 :46) 在 StaticSymbolResolver.getSymbolsOf (D:\000PS\workspace_ui\dashboard\node_modules\@angular\compiler\bundles\compiler.umd.js:25524:14) 在 D:\000PS\workspace_ui\dashboard\node_modules\@angular \compiler\bundles\compiler.umd.js:24381:30 at Array.forEach () at extractProgramSymbols (D:\000PS\workspace_ui\dashboard\node_modules\@angular\compiler\bundles\compiler.umd.js:24380:79) at AotCompiler.analyzeModulesAsync (D:\000PS\ workspace_ui\dashboard\node_modules\@angular\compiler\bundles\compiler.umd.js:23936:47) 在 CodeGenerator.codegen (D:\000PS\workspace_ui\dashboard\node_modules\@angular\compiler-cli\src\codegen. js:32:14) 在 Function.NgTools_InternalApi_NG_2.codeGen (D:\000PS\workspace_ui\dashboard\node_modules\@angular\compiler-cli\src\ngtools_api.js:73:30) 在 _donePromise.Promise.resolve.then ( D:\000PS\workspace_ui\dashboard\node_modules\@ngtools\webpack\src\plugin.js:428:58) 在 process._tickCallback (internal/process/next_tick.js:188:7)\000PS\workspace_ui\dashboard\node_modules\@angular\compiler\bundles\compiler.umd.js:24380:79) 在 AotCompiler.analyzeModulesAsync (D:\000PS\workspace_ui\dashboard\node_modules\@angular\compiler\bundles\compiler .umd.js:23936:47) 在 CodeGenerator.codegen (D:\000PS\workspace_ui\dashboard\node_modules\@angular\compiler-cli\src\codegen.js:32:14) 在 Function.NgTools_InternalApi_NG_2.codeGen (D :\000PS\workspace_ui\dashboard\node_modules\@angular\compiler-cli\src\ngtools_api.js:73:30) at _donePromise.Promise.resolve.then (D:\000PS\workspace_ui\dashboard\node_modules\@ngtools\ webpack\src\plugin.js:428:58) 在 process._tickCallback (internal/process/next_tick.js:188:7)\000PS\workspace_ui\dashboard\node_modules\@angular\compiler\bundles\compiler.umd.js:24380:79) 在 AotCompiler.analyzeModulesAsync (D:\000PS\workspace_ui\dashboard\node_modules\@angular\compiler\bundles\compiler .umd.js:23936:47) 在 CodeGenerator.codegen (D:\000PS\workspace_ui\dashboard\node_modules\@angular\compiler-cli\src\codegen.js:32:14) 在 Function.NgTools_InternalApi_NG_2.codeGen (D :\000PS\workspace_ui\dashboard\node_modules\@angular\compiler-cli\src\ngtools_api.js:73:30) at _donePromise.Promise.resolve.then (D:\000PS\workspace_ui\dashboard\node_modules\@ngtools\ webpack\src\plugin.js:428:58) 在 process._tickCallback (internal/process/next_tick.js:188:7)\000PS\workspace_ui\dashboard\node_modules\@angular\compiler\bundles\compiler.umd.js:23936:47) 在 CodeGenerator.codegen (D:\000PS\workspace_ui\dashboard\node_modules\@angular\compiler-cli\src \codegen.js:32:14) 在 Function.NgTools_InternalApi_NG_2.codeGen (D:\000PS\workspace_ui\dashboard\node_modules\@angular\compiler-cli\src\ngtools_api.js:73:30) 在 _donePromise.Promise.resolve .then (D:\000PS\workspace_ui\dashboard\node_modules\@ngtools\webpack\src\plugin.js:428:58) at process._tickCallback (internal/process/next_tick.js:188:7)\000PS\workspace_ui\dashboard\node_modules\@angular\compiler\bundles\compiler.umd.js:23936:47) 在 CodeGenerator.codegen (D:\000PS\workspace_ui\dashboard\node_modules\@angular\compiler-cli\src \codegen.js:32:14) 在 Function.NgTools_InternalApi_NG_2.codeGen (D:\000PS\workspace_ui\dashboard\node_modules\@angular\compiler-cli\src\ngtools_api.js:73:30) 在 _donePromise.Promise.resolve .then (D:\000PS\workspace_ui\dashboard\node_modules\@ngtools\webpack\src\plugin.js:428:58) at process._tickCallback (internal/process/next_tick.js:188:7)\000PS\workspace_ui\dashboard\node_modules\@angular\compiler-cli\src\ngtools_api.js:73:30) 在 _donePromise.Promise.resolve.then (D:\000PS\workspace_ui\dashboard\node_modules\@ngtools\webpack \src\plugin.js:428:58) 在 process._tickCallback (internal/process/next_tick.js:188:7)\000PS\workspace_ui\dashboard\node_modules\@angular\compiler-cli\src\ngtools_api.js:73:30) 在 _donePromise.Promise.resolve.then (D:\000PS\workspace_ui\dashboard\node_modules\@ngtools\webpack \src\plugin.js:428:58) 在 process._tickCallback (internal/process/next_tick.js:188:7)

请查找 package.json 以供参考:

{
  "name": "dashboard",
  "version": "1.0.1",
  "scripts": {
    "ng": "ng",
    "start": "ng serve",
    "build": "ng build",
    "test": "ng test",
    "lint": "ng lint",
    "e2e": "ng e2e"
  },
  "private": true,
  "dependencies": {
    "@angular/common": "4.4.4",
    "@angular/compiler": "4.4.4",
    "@angular/core": "4.4.4",
    "@angular/forms": "4.4.4",
    "@angular/http": "4.4.4",
    "@angular/platform-browser": "4.4.4",
    "@angular/platform-browser-dynamic": "4.4.4",
    "@angular/router": "4.4.4",
    "@ngui/map": "0.18.3",
    "@types/googlemaps": "3.26.14",
    "angular2-jwt": "^0.2.3",
    "bootstrap": "3.3.5",
    "bootstrap-notify": "3.1.3",
    "bootstrap-select": "1.12.2",
    "bootstrap-switch": "3.3.4",
    "bootstrap-tagsinput": "0.7.1",
    "chartist": "0.9.4",
    "chartist-plugin-zoom": "0.4.0",
    "chartjs-plugin-zoom": "0.5.0",
    "core-js": "2.4.1",
    "datatables": "1.10.12",
    "datatables.net-bs": "1.10.12",
    "datatables.net-responsive": "2.1.1",
    "easy-pie-chart": "2.1.7",
    "eonasdan-bootstrap-datetimepicker": "4.17.47",
    "fullcalendar": "3.4.0",
    "jasny-bootstrap": "3.1.3",
    "jquery": "1.12.4",
    "material-design-icons": "^3.0.1",
    "mdbootstrap": "^4.5.0",
    "ng2-fab-speed-dial": "^1.0.0-beta.5",
    "ngx-pipes": "^1.6.5",
    "nouislider": "9.2.0",
    "npm": "^5.8.0",
    "rxjs": "5.4.2",
    "time-ago-pipe": "1.2.1",
    "twitter-bootstrap-wizard": "^1.2.0",
    "web-animations-js": "2.2.2",
    "zone.js": "0.8.4"
  },
  "devDependencies": {
    "@angular/cli": "^1.7.4",
    "@angular/compiler-cli": "4.4.4",
    "@types/bootstrap": "3.3.32",
    "@types/chartist": "0.9.34",
    "@types/jasmine": "2.5.38",
    "@types/jquery": "1.10.31",
    "@types/node": "6.0.73",
    "angular2-jwt": "^0.2.3",
    "codelyzer": "2.0.0",
    "jasmine-core": "2.5.2",
    "jasmine-spec-reporter": "3.2.0",
    "karma": "1.4.1",
    "karma-chrome-launcher": "2.0.0",
    "karma-cli": "1.0.1",
    "karma-coverage-istanbul-reporter": "0.2.0",
    "karma-jasmine": "1.1.0",
    "karma-jasmine-html-reporter": "0.2.2",
    "protractor": "5.1.0",
    "ts-node": "2.0.0",
    "tslint": "4.5.0",
    "typescript": "2.4.2"
  }
}

标签: angularangular-cli

解决方案


您的角度版本是 4.4,而 ngx-pipes 角度版本是 5 或更高版本。因此,请使用与您的 Angular 项目兼容的版本安装 ngx-pipes。

检查 node_modules/ngx-pipes/package.json 以找到 ngx-pipes 版本。


推荐阅读