visual studio que plugin extensions extension code visual-studio-2015 tslint

que - Configurar TSLint en Visual Studio 2015



visual studio code angular extensions (3)

Me desarrollo con Typescript en Visual Studio 2013 y siempre tengo mi lista de errores abierta en la parte inferior. TSLint me dice cuando mi código está desordenado / incorrecto mientras lo escribo. No creo que tuviera que hacer nada más que instalar el complemento de Web Essentials.

Recientemente instalé Visual Studio 2015 y no puedo, por mi vida, hacer que TSLint funcione como lo hizo en Visual Studio 2013. ¿Me falta algo obvio?


Ahora tienes que hacer esto para hacer que esto suceda. Es un poco molesto si me preguntas, ¡pero funciona! Así es como lo hacemos:

  1. Nodo de instalación: https://nodejs.org
  2. Instalar Gulp: http://gulpjs.com
  3. Instalar paquetes gulp en la raíz del proyecto:
    • En la línea de comandos cd C://path/to/project
    • npm install gulp-tslint --save-dev
    • npm install gulp-plumber --save-dev

Opcional:

  • npm install gulp-newer --save-dev
  • npm install gulp-watch --save-dev

¡Ahora todo está instalado! Abra Visual Studio y agregue un nuevo gulpfile.js a la raíz de su proyecto con el siguiente contenido:

/// <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)); });

Ok, ahora todo está listo para usar! Ahora en Visual Studio, abra el Explorador de Tareas . Las tareas deben aparecer aquí.

No es que puedas decirle a cada tarea cuándo ejecutar. Puede configurar esto haciendo clic derecho en cada tarea, y simplemente se agrega a la primera línea en gulpfile.js

  • La tarea TSLint:All ejecutará TSLint en todos los archivos especificados.
  • La tarea TSLint:Newer ejecutará TSLint en todos los archivos que se hayan modificado desde la última comprobación.
  • ¡La tarea TSLint:Watch seguirá ejecutándose y revisará automáticamente los archivos a medida que se guardan!

Parece que hay un paquete nuget que puede ayudarte aquí. Si hace clic derecho en el proyecto y selecciona "Administrar paquetes de NuGet" y busca tslint, encontrará un paquete llamado "NCapsulateExtensions.TsLint" que debería funcionar para usted.

Sin embargo, no pude verificarlo personalmente porque el paquete requiere System.Web.Helpers.dll y no lo tengo en mi máquina (tampoco lo pude encontrar en ninguna parte). Por lo tanto, busqué en el repositorio de git y descubrí que el paquete nuget en realidad no usa este dll y envié una solicitud de extracción para eliminarlo. Mientras tanto, mi tenedor se puede encontrar aquí:

https://github.com/mbraude/NCapsulateExtensions.TsLint

Esperamos que usted o alguien más sepa dónde está System.Web.Helpers para que pueda instalar esto y probarlo, o el autor tome la solicitud de extracción y publique una nueva versión.

Si esto no funciona, tendrá que hacer algo similar en su proyecto: llamar a tslint desde una tarea msbuild personalizada. También podría clonar esta solución y configurarla manualmente sin nuget, simplemente sería mucho más trabajo.