Хорошо, я не использую расширение Web Essentials, но Web Analyzer: https://visualstudiogallery.msdn.microsoft.com/6edc26d4-47d8-4987-82ee-7c820d79be1d
Так я не смогу ответить на этот вопрос 100%, но я хочу, чтобы суммировать здесь мой опыт работы с правилами пользовательского tslint , Прежде всего, то, что не совсем ясно из документации, состоит в том, что все это зависит от node.js.
- В первую очередь вам необходимо установить узел js. Это даст вам команду npm в командной строке.
- После установки с npm tslint и машинописным текстом. https://github.com/palantir/tslint вот примеры. Они создадут файлы в: "c: \ Users [Имя пользователя] \ AppData \ Роуминг \ npm \ node_modules"
Перейдите в раздел "c: \ Users [Имя пользователя] \ AppData \ Роуминг \ npm \ node_modules \ tslint \ lib \ правила \». Создайте здесь noImportRule.ts. Скопируйте следующее содержание:
import * as ts from "typescript";
import * as Lint from "../lint";
export class Rule extends Lint.Rules.AbstractRule {
public static FAILURE_STRING = "import statement forbidden EDE";
public apply(sourceFile: ts.SourceFile): Lint.RuleFailure[] {
return this.applyWithWalker(new NoImportsWalker(sourceFile, this.getOptions()));
}
}
// The walker takes care of all the work.
class NoImportsWalker extends Lint.RuleWalker {
public visitImportDeclaration(node: ts.ImportDeclaration) {
// create a failure at the current position
this.addFailure(this.createFailure(node.getStart(), node.getWidth(), Rule.FAILURE_STRING));
// call the base version of this visitor to actually parse this node
super.visitImportDeclaration(node);
}
}
Заметьте, что в примере импорт ворс не дан с относительным путем, который не будет работать с этим подходом. 4. Пожар команды: "tsc -m commonjs --noImplicitAny. \ NoImportsRule.ts". Это скомпилирует ts вашего пользовательского правила. Вы получите кучу ошибок компиляции, таких как: ../enableDisableRules.d.ts(1,21): ошибка TS2307: не удается найти модуль «машинопись». Это хороший вопрос, почему эти брошенные, но забывают о них, js-файл будет создан в любом случае. 5. Поместите «no-import»: true на ваш tslint.json (пока это должно быть обычным). С помощью этой команды из командной строки: tslint -c 'sample.tslint.json' test.ts вы получите: test.ts [1, 1]: запрещен импорт. Таким образом, вы создали рабочее правило! :)
Это все для работы из командной строки. Кроме того, я создал пользовательские правила, работающие с WebAnalyzer, по крайней мере временные. Мне нужно было скопировать файлы моего пользовательского правила здесь: c: \ Users [Имя пользователя] \ AppData \ Local \ Temp \ WebAnalyzer1.6.65 \ node_modules \ tslint \ lib \ rules \ и, конечно, настроить WebAnalyzer tslint.json для включения пользовательских правил , Я понятия не имею, как расширение Web Essentials делает все это, работая с tslint, но я предполагаю, что это похоже :). Где-то должна быть папка (node_modules \ tslint \ lib \ rules) с правилами, которые использует tslint. Там вам нужно скопировать ваши собственные. Конечно, самым изящным решением было бы изменение самого расширения веб-Essentials и создание настраиваемого каталога правил tslint из визуальной студии.(Так что мое решение просто обходной путь)
Вот мой пример пользовательского правила в списке визуального предупреждения студии:
Какую версию tslint вы используете? Кроме того, как вы используете tslint? – JKillian
Я использую WebEssentials 2013.5 внутри Visual Studio 2013 для запуска tslint –