2015-10-16 101 views
16

我在Visual Studio 2013中使用Typescript進行開發,並始終在底部打開我的錯誤列表。當我寫代碼時,TSLint告訴我我的代碼是否雜亂/不正確。除了安裝Web Essentials插件之外,我認爲我不需要做任何事情。在Visual Studio 2015中設置TSLint

我最近安裝了Visual Studio 2015,並且不能在我的生活中讓TSLint像在Visual Studio 2013中一樣工作。我是否錯過了明顯的東西?

回答

2

它看起來像有一個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的情況下進行手動設置 - 這隻會是更多的工作。

+0

謝謝,我我會對它進行測試。我很確定這個包是用於MVC框架的,您可能需要也可能不需要,具體取決於您正在使用的Typecript項目。 – TrentVB

+1

您正在尋找的palantir的tslint軟件包也可以通過NuGet Package Manager獲得。 –

10

您現在必須使用gulp任務來實現此目的。如果你問我,這有點痛苦,但它確實有效!這是我們如何做到這一點:

  1. 安裝節點:https://nodejs.org
  2. 安裝咕嘟咕嘟:http://gulpjs.com
  3. 安裝一飲而盡包項目根:
    • 在命令行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 Task Runner Explorer

不是說你可以告訴每個任務時運行。您可以通過右擊每個任務設置此,它只是增加了第一線的gulpfile.js

Visual Studio 2015 Task Runner Explorer Bindings


  • TSLint:All任務將在所有指定的文件運行TSLint。
  • TSLint:Newer任務將對自上次檢查後發生更改的所有文件運行TSLint。
  • TSLint:Watch任務將保持運行並自動檢查保存的文件!
+4

如果您希望在構建完成後在Visual Studio錯誤列表中顯示警告,請使用「msbuild」而不是「散文」,並將其作爲MSBuild前/後構建任務調用。 –

+0

嗨,你可以請更新解決方案與最新的變化https://github.com/panuhorsmalahti/gulp-tslint/blob/master/CHANGELOG.md –

+0

@shyam_沒有什麼改變足以改變這個答案。它仍然以相同的方式建立。 –