从Angular 6迁移到Angular 7会导致错误-无法解决'core-js / es7 / reflect'

时间:2019-04-18 19:40:38

标签: node.js angular npm

Global Angular CLI: 7.3.8
Node v10.15.3
NPM 6.4.1
macos

我在npm start上遇到此错误

  

错误   ./node_modules/@angular-devkit/build-angular/src/angular-cli-files/models/jit-polyfills.js   找不到模块:错误:无法解析“ core-js / es7 / reflect”   '/用户/ XXX /项目/ XXX / node_modules / @ angular-devkit / build-angular / src / angular-cli-files / models'   ./src/polyfills.ts中的错误找不到模块:错误:无法解决   '/ Users / XXX / projects / XXX / src'中的'core-js / es7 / reflect'

5 个答案:

答案 0 :(得分:3)

为解决此问题,我在tsconfig.json中将以下路径添加到compileOptions

{
  "compileOnSave": false,
  "compilerOptions": {
    "paths": {
      "core-js/es7/reflect": [
        "node_modules/core-js/proposals/reflect-metadata",
      ],
      "core-js/es6/*": ["node_modules/core-js/es"]
    },
    "baseUrl": "./",
    "outDir": "./dist/out-tsc",
    "sourceMap": true,
    "declaration": false,
    "moduleResolution": "node",
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "target": "es5",
    "typeRoots": [
      "node_modules/@types"
    ],
    "lib": [
      "es2017",
      "dom"
    ]
  }
}

答案 1 :(得分:0)

迁移到新的Angular版本后,'core-js / es6'或'core-js / es7'将不起作用。

您只需替换导入'core-js / es /'

例如导入“ core-js / es6 / symbol”以导入“ core-js / es / symbol”

这将正常工作。

答案 2 :(得分:0)

我只是将所有文件从最早的项目src/polyfills复制到新导入的文件。那是帮助;)。

答案 3 :(得分:0)

只需删除路径中“ es”末尾的数字,例如“ core-js / es / reflect”。它对我有用。

答案 4 :(得分:0)

"@angular/cli": "~10.1.5"项目中遇到此错误:

找不到模块'core-js / es7 / reflect'或其对应的类型声明。ts(2307)

解决方案:

import * as Reflect from 'core-js/es';