Настройка TSLint в Visual Studio 2015
Я разрабатываю с Typescript в Visual Studio 2013 и всегда имею открытый список ошибок внизу. TSLint сообщает мне, когда мой код неаккуратен / неверен, когда я его пишу. Я не думаю, что мне нужно было делать что-то еще, кроме установки плагина Web Essentials.
Я недавно установил Visual Studio 2015 и не могу заставить TSLint работать так, как это было в Visual Studio 2013. Я упускаю что-то очевидное?
3 ответа:
Похоже, что самый простой способ сейчас-загрузить Web Analyzer от Mads Kristensen из галереи Visual Studio, он включает поддержку TSLint
Https://visualstudiogallery.msdn.microsoft.com/6edc26d4-47d8-4987-82ee-7c820d79be1d
(его Свободный)
Теперь вы должны это сделать, используя задачи gulp, чтобы это произошло. Это немного больно, если вы спросите меня, но это действительно работает! Вот как мы это делаем:
- установить узел: https://nodejs.org
- установить глоток: http://gulpjs.com
- установите пакеты gulp в корневой каталог проекта:
- в командной строке
cd C:\\path\to\project
npm install gulp-tslint --save-dev
npm install gulp-plumber --save-dev
Необязательно:
npm install gulp-newer --save-dev
npm install gulp-watch --save-dev
Теперь все установлено! Откройте Visual Studio и добавьте новый
gulpfile.js
в корневой каталог проекта со следующим содержимым:/// <binding AfterBuild='TSLint:All' ProjectOpened='TSLint:Watch' /> //Node packages var gulp = require("gulp"); var plumber = require("gulp-plumber"); var tslint = require("gulp-tslint"); //Only include these 2 packages if you've installed them var newer = require("gulp-newer"); var watch = require("gulp-watch"); //Paths to include/exclude var TYPE_SCRIPT_FILES = ["app/**/*.ts", "!app/core/Events.ts"]; //Our TSLint settings var TYPE_SCRIPT_REPORT = tslint.report("prose", { emitError: false, reportLimit: 50 }); //The actual task to run gulp.task("TSLint:All", function () { return gulp.src(TYPE_SCRIPT_FILES) .pipe(plumber()) .pipe(tslint()) .pipe(TYPE_SCRIPT_REPORT); }); //===== ONly include the below code if needed // File locations var BIN = "bin"; // Listens for new (updated) typescript files and runs through TSlint gulp.task("TSLint:Newer", [], function (done) { return gulp.src(TYPE_SCRIPT_FILES) .pipe(plumber()) .pipe(newer(BIN)) .pipe(tslint()) .pipe(TYPE_SCRIPT_REPORT) .pipe(gulp.dest(BIN)); }); //This task runs when the project opens. When any file changes, it will be run through TSLint gulp.task('TSLint:Watch', function () { return gulp.src(TYPE_SCRIPT_FILES) .pipe(watch(TYPE_SCRIPT_FILES)) .pipe(plumber()) .pipe(tslint()) .pipe(TYPE_SCRIPT_REPORT) .pipe(gulp.dest(BIN)); });
Хорошо, теперь все готово к использованию! Теперь в Visual Studio откройте Task Runner Explorer . Задачи должны появиться здесь.Не то, чтобы вы могли сказать каждой задаче, когда ее запускать. Вы можете установить это, щелкнув правой кнопкой мыши на каждой задаче, и это просто добавляет к первой строке на
gulpfile.js
- задача
TSLint:All
запустит TSLint для всех указанных файлов.- задача
TSLint:Newer
запустит TSLint для всех файлов, которые были изменены с момента последней проверки.- задача
TSLint:Watch
будет оставаться запущенной и автоматически проверять файлы по мере их сохранения!
Похоже, что есть пакет nuget, который может помочь вам здесь. Если вы щелкните правой кнопкой мыши на проекте и выберите " Управление пакетами NuGet "и выполните поиск tslint, вы найдете пакет под названием" NCapsulateExtensions.Цлинт", который должен работать на вас.
Я лично не смог проверить это, потому что пакет требует системы.Сеть.Прислуга.dll и у меня нет этого на моей машине (и я не мог найти его нигде). Итак, я заглянул в репо git и обнаружил, что пакет nuget фактически не использует эту библиотеку dll и отправил запрос на ее удаление. А пока мою вилку можно найти здесь:
Https://github.com/mbraude/NCapsulateExtensions.TsLint
Надеюсь, вы или кто-то еще знает, где система.Сеть.Helpers-это то, что вы можете установить это и попробовать, или автор берет запрос pull и публикует новую версию.
Если это не сработает, вам нужно будет сделать что - то подобное в вашем проекте-вызов tslint из пользовательской задачи msbuild. Вы также можете клонировать это решение и настроить его вручную без nuget - это просто будет намного больше работы.