角度编译会导致运行时错误:对象不支持属性或方法'getMetadata'

问题描述 投票:0回答:1

我正在尝试使用Jenkins设置构建管道。我的构建似乎可以正常工作,但是当我尝试加载从构建生成的文件时,我在浏览器控制台中看到此错误。

Object doesn't support property or method 'getMetadata'

在我的项目代码中的任何地方都没有调用Reflect.getMetadata(),但我意识到其中一个依赖项可能会沿线运行。在Webpack创建的生成的main.js文件中,错误发生在Reflect.getMetadata()调用处。页面上没有任何内容。它灾难性地失败了,只是空白。

我找到了人们遇到类似问题的参考,但是我尝试了他们的解决方案,但仍然遇到相同的运行时错误。

我尝试了“ bashleigh”和“ schtauffen”所说的对他们有用的方法:https://github.com/rbuckton/reflect-metadata/issues/44

但是当我从reflect-metadata安装npm库时,它确实告诉我它已被弃用,不需要包含。

npm i --save @types/reflect-metadata

npm WARN deprecated @types/[email protected]: This is a stub types definition for reflect-metadata (https://github.com/rbuckton/ReflectDecorators). reflect-metadata provides its own type definitions, so you don't need @types/reflect-metadata installed!

[无论如何,我都尝试运行包含该版本的构建,只是为了查看会发生什么,但是没有任何变化。同样的错误。

这是我的package.json:

{
  "name": "web-admin-angular",
  "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/animation": "4.0.0-beta.8",
    "@angular/animations": "8.2.14",
    "@angular/cdk": "8.2.3",
    "@angular/common": "8.2.14",
    "@angular/compiler": "8.2.14",
    "@angular/core": "8.2.14",
    "@angular/forms": "8.2.14",
    "@angular/http": "7.2.15",
    "@angular/material": "8.2.3",
    "@angular/platform-browser": "8.2.14",
    "@angular/platform-browser-dynamic": "8.2.14",
    "@angular/router": "8.2.14",
    "@types/reflect-metadata": "^0.1.0",
    "hammerjs": "^2.0.8",
    "jquery": "^3.4.1",
    "moment": "2.24.0",
    "rxjs": "6.5.3",
    "tslib": "1.10.0",
    "zone.js": "0.10.2"
  },
  "devDependencies": {
    "@angular-devkit/build-angular": "^0.803.19",
    "@angular/cli": "^8.3.19",
    "@angular/compiler-cli": "^8.2.14",
    "@angular/language-service": "^8.2.14",
    "@types/jasmine": "~3.4.6",
    "@types/jasminewd2": "^2.0.8",
    "@types/node": "~12.12.7",
    "class-transformer": "^0.2.3",
    "codelyzer": "~5.2.0",
    "jasmine-core": "~3.5.0",
    "jasmine-spec-reporter": "~4.2.1",
    "karma": "~4.4.1",
    "karma-chrome-launcher": "~3.1.0",
    "karma-coverage-istanbul-reporter": "~2.1.0",
    "karma-jasmine": "~2.0.1",
    "karma-jasmine-html-reporter": "^1.4.2",
    "protractor": "~5.4.2",
    "ts-node": "~8.5.0",
    "tslint": "~5.20.1",
    "typescript": "^3.4.5"
  }
}

还有我的tsconfig.json:

{
  "compileOnSave": false,
  "compilerOptions": {
    "baseUrl": "./",
    "outDir": "./dist/out-tsc",
    "sourceMap": true,
    "declaration": false,
    "downlevelIteration": true,
    "experimentalDecorators": true,
    "module": "esnext",
    "moduleResolution": "node",
    "importHelpers": true,
    "target": "es2015",
    "typeRoots": [
      "node_modules/@types"
    ],
    "lib": [
      "es2018",
      "dom"
    ],
    "types": [
      "reflect-metadata"
    ]
  },
  "angularCompilerOptions": {
    "fullTemplateTypeCheck": true,
    "strictInjectionParameters": true
  }
}

我现在完全不知道还要尝试什么。任何帮助将不胜感激。

angular typescript angular2-aot reflect-metadata
1个回答
0
投票
© www.soinside.com 2019 - 2024. All rights reserved.