默认情况下,在 angular-cli 项目中,tslint 设置包含了一些会弯曲的东西。最近,一位新开发人员联系我,说我在 Atom 中配置了他们的 tslint 实例。
我被问及以下行:
import { Observable, BehaviorSubject } from 'rxjs';
TSLinter 说 rxjs 被列入黑名单。我去了 tslint.json 文件,果然,它被列出来了。
这个黑名单是什么,它是否可以保护应用程序免受某些攻击?
为什么默认将 rxjs 添加到列表中?
在什么条件下我应该添加其他东西?
我想指出的是,我知道如何“解决”问题::
import { Observable } from 'rxjs/observable';
import { BehaviorSubject } from 'rxjs/BehaviorSubject';
问题仍然在于的含义黑名单 在 TSLint 的上下文中。
最佳答案
这是因为你不应该(至少在浏览器应用程序中)永远不要包含来自 'rxjs'
并始终使用更具体的例如 'rxjs/Observable'
或 'rxjs/BehaviorSubject'
.
当您包含 'rxjs'
时你实际上包含了这个文件:https://github.com/ReactiveX/rxjs/blob/master/index.js其中包括整个捆绑的 RxJS 库(所有运算符、调度程序等)。所以你包含了很多你甚至不使用的东西,你的应用程序变得比必要的更大(我认为使用 webpack2 摇树并没有帮助,一旦包含代码,它就会成为最终包的一部分,但我可能是错的)。
我觉得可以直接从'rxjs'
导入在 node
应用程序(例如后端应用程序),其中包含您不会使用的代码并不重要,而且这种方式更易于使用。
关于rxjs - 什么是 tslint 黑名单,为什么 angular-cli 在 tslint.json 的列表中默认使用 rxjs?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45697345/