升级到 Angular 10 - 修复 CommonJS 或 AMD 依赖项可能会导致优化救助

我正在尝试将我的angular 9应用程序升级到angular 10版本,但在升级后低于警告

rxjs\BehaviorSubject.js depends on rxjs-compat/BehaviorSubject

任何想法如何解决这个问题?


答案 1

当您使用与 CommonJS 打包的依赖项时,它可能会导致应用程序速度变慢

从版本 10 开始,Angular 现在会在构建版本拉入其中一个捆绑包时向您发出警告。如果您已经开始看到这些依赖项的警告,请让您的依赖项知道您更喜欢 ECMAScript 模块 (ESM) 捆绑包。

这是一个官方文档 - 配置CommonJS依赖关系

angular.json 文件中查找构建对象并添加

allowcommonJsDependencies

如下图所示 -

"build": {
  "builder": "@angular-devkit/build-angular:browser",
  "options": {
     "allowedCommonJsDependencies": [
        "rxjs-compat",
         ... few more commonjs dependencies ... 
     ]
     ...
   }
   ...
},

答案 2

尝试将 rxjs 导入替换为 。rxjs/internal/operatorsrxjs/operators

前任:

import { catchError, retry } from 'rxjs/internal/operators';

import { catchError, retry } from 'rxjs/operators';