我在Visual Studio 2013中使用Typescript进行开发,并始终在底部打开我的错误列表。当我写代码时,TSLint告诉我我的代码是否杂乱/不正确。除了安装Web Essentials插件之外,我认为我不需要做任何事情。在Visual Studio 2015中设置TSLint
我最近安装了Visual Studio 2015,并且不能在我的生活中让TSLint像在Visual Studio 2013中一样工作。我是否错过了明显的东西?
我在Visual Studio 2013中使用Typescript进行开发,并始终在底部打开我的错误列表。当我写代码时,TSLint告诉我我的代码是否杂乱/不正确。除了安装Web Essentials插件之外,我认为我不需要做任何事情。在Visual Studio 2015中设置TSLint
我最近安装了Visual Studio 2015,并且不能在我的生活中让TSLint像在Visual Studio 2013中一样工作。我是否错过了明显的东西?
看起来最简单的方法是现在从Visual Studio库下载Web分析器通过的Mads克里斯滕森,它包括TSLint支持
https://visualstudiogallery.msdn.microsoft.com/6edc26d4-47d8-4987-82ee-7c820d79be1d
(其免费)
它看起来像有一个nuget包,可以帮助你在这里。如果你右键点击该项目并选择“管理NuGet包”并搜索tslint,你会发现一个名为“NCapsulateExtensions.TsLint”的包,它应该适合你。
虽然我没有亲自验证过,因为该软件包需要System.Web.Helpers.dll,并且我没有在我的机器上(我也无法在任何地方找到它)。所以,我查看了git repo,发现nuget包实际上并没有使用这个dll并提交了一个pull请求来删除它。在此期间,我的叉子可以在这里找到:
https://github.com/mbraude/NCapsulateExtensions.TsLint
希望你或别人知道哪里System.Web.Helpers是让你可以安装这一点,给它一个尝试,或作者采取拉取请求并发布新版本。
如果这不会结束工作,你需要在你的项目中做类似的事情 - 从自定义的msbuild任务中调用tslint。你也可以克隆这个解决方案,并且在没有nuget的情况下进行手动设置 - 这只会是更多的工作。
谢谢,我我会对它进行测试。我很确定这个包是用于MVC框架的,您可能需要也可能不需要,具体取决于您正在使用的Typecript项目。 – TrentVB
您正在寻找的palantir的tslint软件包也可以通过NuGet Package Manager获得。 –
您现在必须使用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
任务将保持运行并自动检查保存的文件!如果您希望在构建完成后在Visual Studio错误列表中显示警告,请使用“msbuild”而不是“散文”,并将其作为MSBuild前/后构建任务调用。 –
嗨,你可以请更新解决方案与最新的变化https://github.com/panuhorsmalahti/gulp-tslint/blob/master/CHANGELOG.md –
@shyam_没有什么改变足以改变这个答案。它仍然以相同的方式建立。 –
如果您在VS 2017中运行,官方TSLint存储库中的README链接到此扩展:https://marketplace.visualstudio.com/items?itemName=RichNewman.TypeScriptAnalyzer –