错误:无法解析“ \ node_modules \ @ angular-devkit \ build-angular \ src \ angular-cli-files \ models中的“ core-js / es7 / reflect”

pyt*_*yth 43 serve angular

更新到Angular 7.3.6后,在ng serve上出现以下错误:

在此处输入图片说明

./node_modules/@angular-devkit/build-angular/src/angular-cli-files/models/jit-polyfills.js中的错误找不到模块:错误:无法解析“ core-js / es7 / reflect” '\ node_modules @ angular-devkit \ build-angular \ src \ angular-cli-files \ models'

这是我的package.json依赖项:

{
  "name": "frontend",
  "version": "0.0.0",
  "license": "MIT",
  "scripts": {
    "ng": "ng",
    "start": "ng serve",
    "build": "ng build --prod",
    "test": "ng test",
    "lint": "ng lint",
    "e2e": "ng e2e"
  },
  "private": true,
  "dependencies": {
    "@angular/animations": "^7.2.11",
    "@angular/cdk": "^7.3.6",
    "@angular/common": "^7.2.11",
    "@angular/compiler": "^7.2.11",
    "@angular/core": "^7.2.11",
    "@angular/flex-layout": "^7.0.0-beta.24",
    "@angular/forms": "^7.2.11",
    "@angular/http": "^7.2.11",
    "@angular/material": "^7.3.6",
    "@angular/platform-browser": "^7.2.11",
    "@angular/platform-browser-dynamic": "^7.2.11",
    "@angular/router": "^7.2.11",
    "adm-zip": "^0.4.13",
    "core-js": "^2.6.5",
    "hammerjs": "^2.0.8",
    "rxjs": "^6.4.0",
    "rxjs-compat": "^6.0.0-rc.0",
    "tslib": "^1.9.3",
    "zone.js": "^0.9.0"
  },
  "devDependencies": {
    "@angular-devkit/build-angular": "^0.13.7",
    "@angular/cli": "^7.3.7",
    "@angular/compiler-cli": "^7.2.11",
    "@angular/language-service": "^7.2.11",
    "@types/jasmine": "~3.3.12",
    "@types/jasminewd2": "~2.0.6",
    "@types/node": "~11.12.0",
    "codelyzer": "^5.0.0",
    "jasmine-core": "~3.3.0",
    "jasmine-spec-reporter": "~4.2.1",
    "karma": "^4.0.1",
    "karma-chrome-launcher": "~2.2.0",
    "karma-coverage-istanbul-reporter": "^2.0.5",
    "karma-jasmine": "~2.0.1",
    "karma-jasmine-html-reporter": "^1.4.0",
    "protractor": "^6.0.0",
    "ts-node": "~8.0.3",
    "tslint": "~5.14.0",
    "typescript": "3.1.6"
  }
}
Run Code Online (Sandbox Code Playgroud)

nir*_*aft 62

您应该安装core-js@2.5.x包含此文件/模块的文件。请参阅预设环境文档

  • `npm install --save core-js @ ^ 2.5.0`,对我有用,谢谢 (15认同)
  • 确认 npm install --save core-js@^2.5.0 也对我有用 (2认同)

Med*_*kal 19

如果您想使用3.0版,则可以在tsconfig.json文件中添加一个路径。

{
    "compilerOptions": {
        ...
        "paths": {
            "core-js/es7/reflect": [
                "node_modules/core-js/proposals/reflect-metadata"
            ]
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

注意:您需要检查node_modules/core-js/proposals/reflect-metadata相对路径,并在项目结构中根据需要对其进行更正。

  • 对我来说,这是这样的:“ paths”:{“ core-js / es7 / reflect”:[“ ../node_modules/core-js/proposals/reflect-metadata”],“ core-js / es6 / *”:[ “ ../node_modules/core-js/es/*”]}, (5认同)
  • 太棒了!这解决了我的问题 (2认同)

Jof*_*dez 17

core-js 3.0版具有一些重大更改:

https://github.com/zloirock/core-js/blob/master/docs/2019-03-19-core-js-3-babel-and-a-look-into-the-future.md

您应该在其中一个文件中找到与此行类似的行: import "core-js/es7/reflect";

更改为此: import "core-js/proposals/reflect-metadata";

  • 在所有答案中,这对我(Angular 11)来说是解决方案。谢谢你,@乔弗里 (3认同)

Fra*_*rzi 16

对于Angular 8(来源):

Angular CLI 8.0+直接管理所需的Angular polyfill,并且项目不需要直接依赖core-js(假设应用程序不手动包含其他core-js polyfills)。

我已解决:

  • core-js从我的package.json依赖中删除
  • 除去import 'core-js/es7/reflect';从我test.ts

  • 对于类似的问题,这有效,但我需要从“polyfills.ts”中删除对“core-js/es{6,7}/reflect”的引用 (2认同)

Bri*_*Ray 12

就我而言,我只是改变了-->

import 'core-js/es6/reflect';
import 'core-js/es7/reflect';
Run Code Online (Sandbox Code Playgroud)

import 'core-js/es/reflect';
Run Code Online (Sandbox Code Playgroud)

它起作用了..


小智 6

删除末尾的数字'es'删除路径'core-js/es/reflect',就像对我来说也有用。

对于 EX:import 'core-js/es7/reflect';更改为import 'core-js/es/reflect';