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

时间:2016-09-21 12:27:39

标签: typescript npm tslint code-standards

我想介绍一个可以在多个项目中共享的打字稿编码指南。我不想多次复制粘贴tslint.json,目前已经发生了这种情况,而且我们已经发布了不同的版本。

我希望将我的指南建立在tslint:recommended上。我看到tslint语法允许extend,但我不清楚它的用法以及如何构造这样的包。

这样的项目本身只能包含tslint.json,还是我需要导出模块?

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

1 个答案:

答案 0 :(得分:7)

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

例如,您可以使用此my-rule-set创建名为package.json的NPM模块:

{
    "name": "my-rule-set",
    "version": "0.0.0",
    "main": "my-rule-set.json"
}

以及此my-rule-set.json(请注意main中的package.json引用了my-rule-set.json文件:

{
    "extends": "tslint:recommended",
    "rules":
    {
        ...
    }
}

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

{
    "extends": "my-rule-set"
}

this TSLint blog post中有关于可共享配置的更多信息。

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