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:
- Nodo de instalación: https://nodejs.org
- Instalar Gulp: http://gulpjs.com
- 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
- En la línea de comandos
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.
Parece que la forma más sencilla ahora es descargar Web Analyzer by Mads Kristensen desde la Galería de Visual Studio, incluye soporte TSLint
https://visualstudiogallery.msdn.microsoft.com/6edc26d4-47d8-4987-82ee-7c820d79be1d
(es gratis)