我在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 –