如何创建我的自定义 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 规则集?的主要内容,如果未能解决你的问题,请参考以下文章

WebEssentials tslint 自定义规则

FxCop:检查程序集信息值的自定义规则

使用 Angular 7 和 `ng lint` 在 TypeScript 中自定义 TSLint 规则

如何在 Magento 1 中应用我的自定义目录价格规则条件?

android:如何使用属性集构造函数实例化我的自定义视图

Fxcop 针对 VS 2010 设计的自定义代码不适用于 VS 2012