не удается найти модуль компилятора ngcc после обновления Angular и проекта
Я только что обновил Angular Cli и один из моих проектов с 7.0.7 до 7.1.0.
Я следил за этим постом и ответом @Francesco Borzi.
Теперь я попытался запустить свой проект с помощью:
ng serve --proxy-config proxy.conf.json
и получил это сообщение
Не удается найти модуль '@angular/compiler-cli/ngcc' Ошибка: не удается найти
модуль '@angular/compiler-cli/ngcc'
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:649:15)
at Function.Module._load (internal/modules/cjs/loader.js:575:25)
at Module.require (internal/modules/cjs/loader.js:705:19)
at require (internal/modules/cjs/helpers.js:14:16)
at Object.<anonymous> (/Users/path/myproject/node_modules/@ngtools/webpack/src/ngcc_processor.js:10:16)
at Module._compile (internal/modules/cjs/loader.js:799:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:810:10)
at Module.load (internal/modules/cjs/loader.js:666:32)
at tryModuleLoad (internal/modules/cjs/loader.js:606:12)
at Function.Module._load (internal/modules/cjs/loader.js:598:3)
at Module.require (internal/modules/cjs/loader.js:705:19)
at require (internal/modules/cjs/helpers.js:14:16)
at Object.<anonymous> (/Users/path/myproject/node_modules/@ngtools/webpack/src/angular_compiler_plugin.js:23:26)
at Module._compile (internal/modules/cjs/loader.js:799:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:810:10)
at Module.load (internal/modules/cjs/loader.js:666:32)
вот мой package.json
{
"name": "myproject",
"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/animations": "~7.0.0",
"@angular/cdk": "7.3.7",
"@angular/common": "~7.0.0",
"@angular/compiler": "~7.0.0",
"@angular/core": "~7.0.0",
"@angular/forms": "~7.0.0",
"@angular/http": "~7.0.0",
"@angular/material": "^7.3.7",
"@angular/platform-browser": "~7.0.0",
"@angular/platform-browser-dynamic": "~7.0.0",
"@angular/router": "~7.0.0",
"angular": "^1.7.8",
"bootstrap": "^4.3.1",
"core-js": "^2.5.4",
"font-awesome": "^4.7.0",
"hammerjs": "^2.0.8",
"jquery": "1.9.1",
"ngx-gallery": "^5.9.1",
"popper.js": "^2.0.0-next.4",
"rxjs": "~6.3.3",
"zone.js": "~0.8.26"
},
"devDependencies": {
"@angular-devkit/build-angular": "^0.800.1",
"@angular/cli": "^8.0.1",
"@angular/compiler-cli": "~7.0.0",
"@angular/language-service": "~7.0.0",
"@types/jasmine": "~2.8.8",
"@types/jasminewd2": "~2.0.3",
"@types/node": "~8.9.4",
"codelyzer": "~4.5.0",
"jasmine-core": "~2.99.1",
"jasmine-spec-reporter": "~4.2.1",
"karma": "~3.0.0",
"karma-chrome-launcher": "~2.2.0",
"karma-coverage-istanbul-reporter": "~2.0.1",
"karma-jasmine": "~1.1.2",
"karma-jasmine-html-reporter": "^0.2.2",
"protractor": "~5.4.0",
"ts-node": "~7.0.0",
"tslint": "~5.11.0",
"typescript": "~3.1.1"
}
}
Ответы
Ответ 1
В файле package.json измените версию @angular/cli в devDependencies:
"@angular/cli": "7.1.0"
Существует несоответствие версий между вашим проектом и devDependency. Возможно, вы использовали npm audit fix --force
или аналогичную команду автоматического обновления, которая могла бы обновить devDependencies в файле "package.json".
Вы также можете использовать Angle Cli версии 7.3.5 в devDependencies здесь. Просто убедитесь, что версия для разработки и версия, упомянутая в devDependencies, совместимы. Имейте в виду, что локальная угловая /cli версия здесь не имеет значения.
Обновление: после внесения изменений удалите "package-lock.json" и удалите папку "node modules". Запустите npm install
, чтобы снова установить модули.
Ответ 2
Я получил ту же ошибку и решил эту проблему, обновив @angular/cli global. лайк:
npm uninstall -g @angular/cli
npm install -g @angular/cli
затем попытался создать новое приложение и скопировал некоторые зависимости из файла package.json в текущий проект, потому что npm install не устанавливает последнюю версию пакетов. затем
npm install
это решило мою проблему, но потом я нашел этот ответ: обновление угловое
Ответ 3
Все это не работает для меня, я пытался перейти с Angular 7 на Angular 8, и вот рабочее решение для меня:
- Npm устарел.
- Обновление npm.
- npm install -g npm-check.
- проверка npm -u - пропустить -u.
- Обновите все устаревшие пакеты, кроме sass, используя npm-check.
- Обновление npm.
- Если в вашем приложении есть ViewChild, обязательно отредактируйте их в
@ViewChild(<name>, {static: true})
.