如何对 *.spec.ts 文件使用不同的 tslint.json
Posted
技术标签:
【中文标题】如何对 *.spec.ts 文件使用不同的 tslint.json【英文标题】:How to use different tslint.json for *.spec.ts files 【发布时间】:2018-11-03 11:55:30 【问题描述】:我为我的 Angular 应用程序定义了一组 tslint 规则。但是,对于规范文件,我想使用更宽松的规则集(例如,禁用 newline-per-chained-call
规则以获得好的期望语句),但我不知道如何在 IntelliJ IDEA 中做到这一点。
Angular CLI 工作正常,因为在 CLI 配置中有一个部分将正确的 tsconfig.json 文件(具有正确的排除/包含)映射到相应的 tslint 文件。但是,IntelliJ 不尊重这一点。
"lint": [
"project": "src/tsconfig.app.json"
,
"project": "src/tsconfig.spec.json"
"tslintConfig": "tslint.spec.json"
,
"project": "e2e/tsconfig.e2e.json",
"tslintConfig": "tslint.spec.json"
]
IntelliJ 自 2018.1 版起支持多个 tsconfig.json 文件(请参阅:https://youtrack.jetbrains.com/issue/WEB-28091),尽管它看起来仍然不支持多个 tslint 配置。
我还找到了一个解决方案来创建一个本地范围并禁用一些检查,但我更希望它由 tslint 规则为不使用 IntelliJ 的人定义。
另一种方法是将测试放在单独的目录中并在其中放置一个 tslint.json,但这不是 Angular 推荐的,也不是人们在 Angular 中习惯的。
【问题讨论】:
【参考方案1】:IDEA 中的 TsLint 服务的工作方式与 TSLint cli 相同 - 它在被 lint 文件的目录中查找名为 tslint.json
的配置文件,如果未找到,则搜索祖先目录。因此,唯一的解决方案是将单独的配置文件放在您的 spec
目录中。
如果您需要该服务在此处遵循 Angular 规则,请随时在 youtrack 中创建功能请求,https://youtrack.jetbrains.com/issues/WEB。如果它获得足够的选票,它将被考虑用于未来的版本
【讨论】:
感谢您的建议,这是我创建的票证:youtrack.jetbrains.com/issue/WEB-33171以上是关于如何对 *.spec.ts 文件使用不同的 tslint.json的主要内容,如果未能解决你的问题,请参考以下文章
Angular CLI 生成的“spec.ts”文件有啥用?
仅将 TypeScript 环境声明添加到特定文件(如 *.spec.ts)
带有 TypeScript 解析器/插件的 ESLint:如何包含从 tsconfig.json 中排除的 .spec.ts?