Eslint 'rxjs/operators' 应该列在项目的依赖中

Posted

技术标签:

【中文标题】Eslint \'rxjs/operators\' 应该列在项目的依赖中【英文标题】:Eslint 'rxjs/operators' should be listed in the project's dependenciesEslint 'rxjs/operators' 应该列在项目的依赖中 【发布时间】:2021-08-07 17:54:12 【问题描述】:

所以我的文件中有这个导入

import  catchError, finalize  from 'rxjs/operators';

当我运行 eslint 时出现此错误:

 error  'rxjs/operators' should be listed in the project's dependencies. Run 'npm i -S rxjs/operators' to add it  import/no-extraneous-dependencies

我在 package.json 依赖项列表中有 rxjs,但似乎 eslint 认为 'rxjs/operators' 是另一个包。

在我的 eslintrc 文件中,我有这个规则:

"import/no-extraneous-dependencies": [
        "error",
        
            "devDependencies": ["**/*.test.ts", "**/*.test.tsx"]
        
    ],

【问题讨论】:

【参考方案1】:

我遇到了同样的问题并修复了以下问题:this 通过添加

...
"settings": 
   "import/core-modules": ["rxjs/operators"]
,
...

在我的 .eslintrc.json 配置文件中。

【讨论】:

【参考方案2】:

@Wana 的解决方案有效,但您可能会发现这实际上是 eslint-plugin-import 规则的问题。

如果您将 eslint-plugin-import 更新到 v2.23.4,您可能会发现此问题已修复。包解析算法最近出现了回归。

npm update eslint-plugin-import

Read more about the issue

【讨论】:

以上是关于Eslint 'rxjs/operators' 应该列在项目的依赖中的主要内容,如果未能解决你的问题,请参考以下文章

[RxJS] What RxJS operators are

BehaviourSubject上的distinctUntilChanged()不起作用

RxJS Subject学习

如何在 Jasmine 中模拟 rxjs webSocket?

[RxJS] Learn How To Use RxJS 5.5 Beta 2

在rxjs6中以随机间隔生成值流?