Настройка TSLint в Visual Studio 2015


Я разрабатываю с Typescript в Visual Studio 2013 и всегда имею открытый список ошибок внизу. TSLint сообщает мне, когда мой код неаккуратен / неверен, когда я его пишу. Я не думаю, что мне нужно было делать что-то еще, кроме установки плагина Web Essentials.

Я недавно установил Visual Studio 2015 и не могу заставить TSLint работать так, как это было в Visual Studio 2013. Я упускаю что-то очевидное?

3 16

3 ответа:

Похоже, что самый простой способ сейчас-загрузить Web Analyzer от Mads Kristensen из галереи Visual Studio, он включает поддержку TSLint

Https://visualstudiogallery.msdn.microsoft.com/6edc26d4-47d8-4987-82ee-7c820d79be1d

(его Свободный)

Теперь вы должны это сделать, используя задачи gulp, чтобы это произошло. Это немного больно, если вы спросите меня, но это действительно работает! Вот как мы это делаем:

  1. установить узел: https://nodejs.org
  2. установить глоток: http://gulpjs.com
  3. установите пакеты 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 . Задачи должны появиться здесь.

Обозреватель Бегунов Задач Visual Studio 2015

Не то, чтобы вы могли сказать каждой задаче, когда ее запускать. Вы можете установить это, щелкнув правой кнопкой мыши на каждой задаче, и это просто добавляет к первой строке на gulpfile.js

Привязки Обозревателя Бегунов Задач Visual Studio 2015


  • задача 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 - это просто будет намного больше работы.