如何创建我的自定义tslint规则集?

k0p*_*kus 2 code-standards npm typescript tslint

我想介绍一个可以在多个项目中共享的打字稿编码指南.我不想复制粘贴tslint.json多次,它已经发生了,我们已经发布了它的分歧版本.

我想以我的指南为基础tslint:recommended.我看到tslint语法允许extend,但我不清楚它的用法以及如何构造这样的包.

这样的项目可以仅仅是一个tslint.json本身,还是我需要导出一个模块?

我希望包然后在npm/sinopia实例上托管,但我不确定如何继续.

car*_*ant 8

是.您可以创建包含规则集的NPM模块,并可以在tslint.json文件的extends设置中引用该模块.

例如,您可以创建一个名为NPM模块my-rule-set与此package.json:

{
    "name": "my-rule-set",
    "version": "0.0.0",
    "main": "my-rule-set.json"
}
Run Code Online (Sandbox Code Playgroud)

而这my-rule-set.json(注意mainpackage.json参考my-rule-set.json文件中):

{
    "extends": "tslint:recommended",
    "rules":
    {
        ...
    }
}
Run Code Online (Sandbox Code Playgroud)

然后,在my-rule-set安装的情况下node_modules,您可以tslint.json使用自己的规则集扩展文件:

{
    "extends": "my-rule-set"
}
Run Code Online (Sandbox Code Playgroud)

此TSLint博客文章中提供了有关可共享配置的更多信息.

如果您的规则集仅包含现有规则的配置,那么您只需要这样做.但是,如果您打算实现一些自定义规则,则my-rule-set.json需要链接到自定义规则所在的目录.例如,它应该具有以下内容:"rulesDirectory": "./rules".然后该./rules目录应包含.js规则的编译版本.