Ответ 1
Вы должны установить [email protected]
который содержит этот файл/модуль. Смотрите предустановленные документы env.
После обновления до Angular 7.3.6 я получаю следующую ошибку на ng serve:
ОШИБКА в. /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"
}
}
Вы должны установить [email protected]
который содержит этот файл/модуль. Смотрите предустановленные документы env.
Если вы хотите использовать версию 3.0, вы можете добавить путь к файлу tsconfig.json
.
{
"compilerOptions": {
...
"paths": {
"core-js/es7/reflect": [
"node_modules/core-js/proposals/reflect-metadata"
]
}
}
}
Версия core-js 3.0 имеет несколько серьезных изменений:
Вы должны найти строку, похожую на эту, в одном из ваших файлов: import "core-js/es7/reflect";
Измените его следующим образом: import "core-js/proposals/reflect-metadata";
Angular CLI 8. 0+ управляет необходимыми угловыми полизаполнениями напрямую, и проекты не будут нуждаться в прямой зависимости от core-js (при условии, что приложение вручную не включает дополнительные полизаполнения core-js).
Я решил:
core-js
из моих package.json
зависимостейimport 'core-js/es7/reflect';
из моего test.ts
Решение 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
Я исправил это, добавив этот импорт: 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, и все должно работать.
Я нашел возможный ответ. У вас есть core-js версии 3.0, и в этой версии нет отдельных папок для ES6 и ES7; Вот почему приложение не может найти правильные пути.
Чтобы устранить эту ошибку, вы можете понизить версию core-js до 2.5.7. Эта версия создает правильную структуру каталогов с отдельными папками ES6 и ES7.
Чтобы понизить версию, просто запустите:
npm я -S [email protected]
В моем случае я просто изменился ->
импорт 'core-js/es6/refle'; импорт 'core-js/es7/refle';
в
импорт 'core-js/es/refle'; импорт 'core-js/es/refle';
и это сработало..