Ошибка: не удается разрешить 'core-js / es7 / refle' в '\ node_modules \ @ angular-devkit \ build-angular \ src \ angular-cli-files \ models - PullRequest
28 голосов
/ 28 марта 2019

После обновления до Angular 7.3.6 я получаю следующую ошибку на ng serve:

enter image description here

ОШИБКА в ./node_modules/@angular-devkit/build-angular/src/angular-cli-files/models/jit-polyfills.js Модуль не найден: Ошибка: не удается разрешить 'core-js / es7 / refle' в '\ Node_modules @ угловая DevKit \ встроенной углового \ SRC \ угловато-CLI-файлы \ модель'

Вот мои зависимости 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"
  }
}

Ответы [ 6 ]

41 голосов
/ 28 марта 2019

Вы должны установить core-js@2.5.x, который содержит этот файл / модуль. См. предустановленные документы .

12 голосов
/ 05 апреля 2019

Если вы хотите использовать версию 3.0, вы можете добавить путь к файлу tsconfig.json.

{
    "compilerOptions": {
        ...
        "paths": {
            "core-js/es7/reflect": [
                "node_modules/core-js/proposals/reflect-metadata"
            ]
        }
    }
}
12 голосов
/ 28 марта 2019

В версии 3.0 core-js произошли серьезные изменения:

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";

3 голосов
/ 08 июля 2019

Решение tsconfig.json из @ medeni работает, но не копируйте путь, прежде чем проверять его самостоятельно.Для меня это должно было быть:

"paths": {
  "core-js/es7/reflect": ["../node_modules/@angular-devkit/build-angular/node_modules/core-js/proposals/reflect-metadata"]
}

../, потому что tsconfig.json расширяется с помощью src / tsconfig.app.json или src / tsconfig.spec.json, поэтому / src является рабочимкаталог.

примечание: я использую Angular CLI 8.1.0

1 голос
/ 26 июля 2019

Я исправил это, добавив этот импорт: import 'core-js/proposals/reflect-metadata'; в моем polyfills.ts файле

/** Evergreen browsers require these. **/
// Used for reflect-metadata in JIT. If you use AOT (and only Angular decorators), you can remove.
import 'core-js/proposals/reflect-metadata';

Убедитесь, что у вас установлено последнее обновление core-js, и все должно работать.

0 голосов
/ 14 мая 2019

Я нашел возможный ответ.У вас есть версия 3.0 core-js, и в этой версии нет отдельных папок для ES6 и ES7;Вот почему приложение не может найти правильные пути.

Чтобы устранить эту ошибку, вы можете понизить версию core-js до 2.5.7.Эта версия создает правильную структуру каталогов с отдельными папками ES6 и ES7.

Чтобы понизить версию, просто запустите:

npm i -S core-js@2.5.7

...