2016-09-21 109 views
2

我想介紹一個可以跨多個項目共享的打字稿編碼指南。我不想複製粘貼tslint.json多次,它已經發生了,我們有它的分歧版本。如何創建我的自定義tslint規則集?

我想根據我的指南tslint:recommended。我看到tslint語法允許使用extend,但我不清楚它的用法以及如何構建這樣的包。

這樣的項目本身可能只包含一個tslint.json本身,還是我需要導出一個模塊?

我想要包然後託管在npm/sinopia實例上,但我不確定如何繼續。

回答

5

是的。您可以創建一個包含規則集的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引用mainmy-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版本的規則。

+1

很好的答案,只需注意一點:在'my-rule-set.json'中,您需要鏈接到自定義規則所在的目錄。例如,它也應該有這樣的:'「rulesDirectory」:「./rules」'。那麼'。/ rules'目錄應該包含規則的_compiled_'.js'版本。 (如果您想要@cartant,請隨意將其編輯爲您的答案) – JKillian

+0

@JKillian您可以將其作爲自己的答案發布,或者如果您認爲更改足夠小,請自行編輯此答案。 – k0pernikus

+0

更新了包含'rulesDirectory'評論的答案。 (感謝您在TSLint上的工作,@JKillian,這是一個有用的工具。) – cartant

相關問題