2016-09-21 3 views
2

Я хочу ввести директиву для машинописного кодирования, которое можно разделить по нескольким проектам. Я не хочу копировать пасту tslint.json несколько раз, это произошло в настоящее время, и у нас есть расходящаяся версия.Как создать свой собственный набор правил tslint?

Я хочу основать мое руководство на tslint:recommended. И я вижу, что синтаксис tslint позволяет использовать extend, но я не понимаю, как его использовать и как структурировать такой пакет.

Может ли такой проект состоять всего из tslint.json или мне нужно экспортировать модуль?

Я хочу, чтобы пакет был размещен на экземпляре npm/sinopia, но я не уверен, как действовать дальше.

ответ

5

Да. Вы можете создать модуль NPM, который содержит ваш набор правил, и может ссылаться на него в настройке tslint.json файла extends.

Например, вы можете создать модуль НПМ по имени my-rule-set с этим package.json:

{ 
    "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.

+1

Отличный ответ, еще одно примечание: в 'my-rule-set.json' вам нужно будет ссылаться на каталог, в котором находятся ваши пользовательские правила. Так, например, он должен также иметь что-то вроде: '' rulesDirectory ":. ./rules". Затем каталог './Rules' должен содержать версии ваших компиляторов' .js'. (Не стесняйтесь редактировать это в свой ответ, если вы хотите @cartant) – JKillian

+0

@JKillian Вы можете опубликовать его как собственный ответ, или если вы считаете, что это изменение достаточно незначительное, отредактируйте его самостоятельно. – k0pernikus

+0

Обновлен ответ, чтобы включить комментарий 'rulesDirectory'. (Спасибо за вашу работу над TSLint, @JKillian, это полезный инструмент.) – cartant

Смежные вопросы