我已经把一个Angular 10项目更新为一个Angular 11项目了。
一切正常,除了新的明亮和闪亮的热模块更换。
所以我已经经历了所有的步骤,我有一个编译应用程序。当使用——hmr标志时,一切看起来都很好。直到我打开浏览器,在控制台上看到一个警告:
[WDS] App hot update... reloadApp.js:19
[HMR] Checking for updates on the server... log.js:24
[HMR] Update failed: NullInjectorError: No provider for ApplicationRef!
get@http://localhost:4200/vendor.js:23645:27
getToken@http://localhost:4200/vendor.js:80240:62
getApplicationRef@http://localhost:4200/vendor.js:80243:28
default_1/<@http://localhost:4200/vendor.js:80181:41
hotApplyInternal@http://localhost:4200/runtime.js:644:16
hotApply@http://localhost:4200/runtime.js:412:19
hotUpdateDownloaded/<@http://localhost:4200/runtime.js:387:22
invoke@http://localhost:4200/polyfills.js:9738:30
run@http://localhost:4200/polyfills.js:9497:47
scheduleResolveOrReject/<@http://localhost:4200/polyfills.js:10231:40
invokeTask@http://localhost:4200/polyfills.js:9773:35
runTask@http://localhost:4200/polyfills.js:9541:51
drainMicroTaskQueue@http://localhost:4200/polyfills.js:9943:39
promise callback*scheduleMicroTask@http://localhost:4200/polyfills.js:9926:32
scheduleTask@http://localhost:4200/polyfills.js:9762:42
scheduleTask@http://localhost:4200/polyfills.js:9584:47
scheduleMicroTask@http://localhost:4200/polyfills.js:9604:29
scheduleResolveOrReject@http://localhost:4200/polyfills.js:10221:18
then@http://localhost:4200/polyfills.js:10353:44
hotUpdateDownloaded@http://localhost:4200/runtime.js:386:15
hotAddUpdateChunk@http://localhost:4200/runtime.js:362:13
webpackHotUpdateCallback@http://localhost:4200/runtime.js:58:29
@http://localhost:4200/soft-login-soft-login-module-ngfactory.4092c72c4d6fd794913e.hot-update.js:1:17
这是什么,我需要做什么来修复它?
我做了什么
- Ran
ng update @angular/core @angular/cli
- Ran
ng update @angular/material
- Ran
ng update
- 删除
package-lock.json and node_modules
- 运行
npm cache clean --force
来清理NPM缓存 - 运行
npm i
重新安装所有内容
确保你没有禁用Ivy。
我的tsconfig.json
上有这个
...
"angularCompilerOptions": {
... other flags
"enableIvy": false
}
移除"enableIvy": false
修复了这个问题