我想介绍一个可以跨多个项目共享的打字稿编码指南。我不想复制粘贴tslint.json
多次,它已经发生了,我们有它的分歧版本。如何创建我的自定义tslint规则集?
我想根据我的指南tslint:recommended
。我看到tslint语法允许使用extend
,但我不清楚它的用法以及如何构建这样的包。
这样的项目本身可能只包含一个tslint.json
本身,还是我需要导出一个模块?
我想要包然后托管在npm/sinopia实例上,但我不确定如何继续。
我想介绍一个可以跨多个项目共享的打字稿编码指南。我不想复制粘贴tslint.json
多次,它已经发生了,我们有它的分歧版本。如何创建我的自定义tslint规则集?
我想根据我的指南tslint:recommended
。我看到tslint语法允许使用extend
,但我不清楚它的用法以及如何构建这样的包。
这样的项目本身可能只包含一个tslint.json
本身,还是我需要导出一个模块?
我想要包然后托管在npm/sinopia实例上,但我不确定如何继续。
是的。您可以创建一个包含规则集的NPM模块,并可以通过tslint.json
文件的extends
设置来引用该模块。
例如,您可以创建一个名为my-rule-set
的NPM模块与此package.json
:
{
"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'目录应该包含规则的_compiled_'.js'版本。 (如果您想要@cartant,请随意将其编辑为您的答案) – JKillian
@JKillian您可以将其作为自己的答案发布,或者如果您认为更改足够小,请自行编辑此答案。 – k0pernikus
更新了包含'rulesDirectory'评论的答案。 (感谢您在TSLint上的工作,@JKillian,这是一个有用的工具。) – cartant