如何创建我的自定义 tslint 规则集?
Posted
技术标签:
【中文标题】如何创建我的自定义 tslint 规则集?【英文标题】:How to create my custom tslint rule set? 【发布时间】:2017-01-29 16:52:57 【问题描述】:我想介绍一个可以跨多个项目共享的打字稿编码指南。我不想多次复制粘贴tslint.json
,它目前已经发生,我们有不同的版本。
我想将我的指导方针基于tslint:recommended
。而且我看到 tslint 语法允许 extend
,但我不清楚它的用法以及如何构建这样的包。
这样的项目可以仅包含tslint.json
本身还是我需要导出一个模块?
我希望将包托管在 npm/sinopia 实例上,但不确定如何继续。
【问题讨论】:
【参考方案1】:是的。您可以创建一个包含规则集的 NPM 模块,并可以在 tslint.json
文件的 extends
设置中引用它。
例如,您可以使用此 package.json
创建一个名为 my-rule-set
的 NPM 模块:
"name": "my-rule-set",
"version": "0.0.0",
"main": "my-rule-set.json"
还有这个my-rule-set.json
(注意package.json
中的main
引用了my-rule-set.json
文件):
"extends": "tslint:recommended",
"rules":
...
然后,在node_modules
中安装my-rule-set
后,您可以使用自己的规则集扩展tslint.json
文件:
"extends": "my-rule-set"
this TSLint blog post 中有更多关于可共享配置的信息。
如果您的规则集仅包含现有规则的配置,那么您只需要这样做。但是,如果您打算实现一些自定义规则,则需要在my-rule-set.json
中链接到自定义规则所在的目录。例如,它还应该有类似:"rulesDirectory": "./rules"
。那么./rules
目录应该包含编译后的.js
规则版本。
【讨论】:
很好的答案,还有一点需要注意:在my-rule-set.json
中,您需要链接到自定义规则所在的目录。因此,例如,它还应该有类似:"rulesDirectory": "./rules"
。然后./rules
目录应该包含你的规则的编译 .js
版本。 (如果您喜欢@cartant,请随时将其编辑到您的答案中)
@JKillian 您可以将其发布为自己的答案,或者如果您认为更改足够小,请自行编辑。
更新了答案以包含 rulesDirectory
评论。 (感谢您在 TSLint 上所做的工作,@JKillian,这是一个有用的工具。)以上是关于如何创建我的自定义 tslint 规则集?的主要内容,如果未能解决你的问题,请参考以下文章
使用 Angular 7 和 `ng lint` 在 TypeScript 中自定义 TSLint 规则