2016-09-21 17 views
2

複数のプロジェクトにわたって共有できるタイスクリプトのコーディングガイドラインを紹介したいと思います。私は複数回にわたってtslint.jsonのペーストをコピーしたくないです、それは現在起こっており、私たちはそれを迂回しています。カスタムtslintルールセットを作成するには?

tslint:recommendedのガイドラインに基づいています。そして、私はtslint構文がextendを許していることを知っていますが、その使い方やそのようなパッケージの構造については不明です。

このようなプロジェクトは、単にtslint.jsonでできているか、モジュールをエクスポートする必要がありますか?

パッケージをnpm/sinopiaのインスタンスでホストしたいのですが、続行方法が不明です。

答えて

5

はい。ルールセットを含むNPMモジュールを作成し、tslint.jsonファイルのextends設定で参照することができます。

たとえば、あなたがこのpackage.jsonmy-rule-setという名前のNPMモジュールを作成することができます。

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

このmy-rule-set.jsonpackage.jsonmainmy-rule-set.jsonファイルを参照することに注意してください):

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

を次にmy-rule-setnode_modulesにインストールして、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

関連する問題