有两个包,TSLint,
https://github.com/palantir/tslint
和它的克服,typescript-eslint,
https://github.com/typescript-eslint/typescript-eslint
它们有相同的维护者。Typescript-eslint在它的文档中引用的是旧版本。
Palantir是一家公司,它的名字不仅有一种黄昏的味道,而且我不确定,这是一个安全的包装。他们的产品对一些人来说是有洞察力的,对另一些人来说是间谍软件。所以现在还不完全清楚,如果这是对公众的一种善意的贡献,或者可能有一些关于它的东西,这应该被视为关键。
@typescript/eslint-plugin不能从使用typescript创建的Create-React-App的构建环境中移除,因为它也是".eslintrc"中提到的"解析器"如何平息这些烦恼?如何确定,没有泄漏?或者我可以从node_modules文件夹中排除它,并能够得到一个"build"从create-react-app ?
解析器的ast扫描还允许插入功能来捕获流经函数的所有内容。编写自己的规则是很容易的,它可以在每个函数调用上部署一堆包装器,将所有信息发送到某个位置,只需要在每个文件中使用eslint——fix。
ESLint不是漏洞向量,因为它只触及源代码。这意味着为了使它危及您的代码,您必须执行以下操作:
- 安装eslint插件
- 手动打开损坏的eslint规则
- 通过
eslint --fix
运行受损的自动修复。 - 忽略对源代码的更改,并将受损的代码交付到生产环境。
(1),(2)有足够的障碍,它不会发生,或者如果发生了,那么有人会很快发现折衷并报告安全问题。(3)需要工程师手动操作引起。(4)在合并代码之前很容易被任何同行评审过程发现,因为再次;Eslint只在源代码上运行。
create-react-app也被正确配置,这样它将确保eslint不会在你的构建代码上运行。AFAIK -它也不运行ESLint时进行生产构建。
现代JS开发(像任何依赖第三方代码的语言开发一样)是建立在信任链上的。您相信所安装的包及其依赖项是安全的。CRA已经决定eslint, typescript-eslint等都是可信的,因此他们将它们作为依赖项。
如果你信任CRA,那么你也必须信任它的依赖项。
如果你不相信CRA或它的一个依赖项,那么你就不安装它,而是构建你自己的内部解决方案。
tslint是安全的,并且一直是安全的。如果plantir是一家可疑的公司,并在他们的软件包中注入了恶意软件——有人会很快发现它并报告一个漏洞——这会破坏项目和公司的可信度。
typescript-eslint与palantir或tslint没有关系。这两个项目是完全独立的——它们有不同的维护者,typescript-eslint也不属于任何公司。
typescript-eslint(和tslint一样)也是完全开源的——如果你担心什么——你可以花时间自己验证它是安全的。
typescript-eslint(像tslint一样)也作为未混淆的、未缩小的JS发送到NPM(因此也发送到你的计算机上)。您可以很容易地花时间来验证您收到的代码与OSS仓库中的代码匹配并且是安全的。