vscode(0.9)でgulpタスクを使用して、typescriptとtslintの両方からエラーを取得しようとしています。isWatchingでタスクによって生成されたvscodeエラーは、固定された後に常にクリアされません。
gulpタスクは、自分のtsファイルの変更を監視しており、変更時にgulp-tslintとgulp-typescriptの両方を実行します。 また、vscode tasks.jsonと問題マッチャーでタスクを定義して結果を解析しました。
エラーは解析され、vscodeに正しく報告されます。 しかし、コードが固定されて保存されていても、時々保存されることがあります。
vscode問題マッチャーにいくつかの追加設定があり、エラーを正しくクリアするか、またはvscodeバグですか? 回避策として、すべてのエラーを手動でクリアする方法がありますか?私がそれらをクリアするために見つけた唯一の方法はvscodeを再起動することです。これは素晴らしいことではありません。
タスクが監視タスクではなく単純な実行であれば、これは正常に動作することに注意してください。
マイvscodeのtasks.json
{
"version": "0.1.0",
"command": "gulp",
"isShellCommand": true,
"tasks": [
{
"taskName": "watch",
// Make this the default build command.
"isBuildCommand": true,
// Watching
"isWatching": true,
// Show the output window only if unrecognized errors occur.
"showOutput": "always",
// Use the standard less compilation problem matcher.
"problemMatcher": [
{
"owner": "gulp-tslint",
"fileLocation": [
"relative",
"${workspaceRoot}/app"
],
"pattern": {
"regexp": ".*\\[gulp-tslint\\] (error|warning) (.*)\\[(\\d*), (\\d*)\\]: (.*)",
"severity": 1,
"file": 2,
"line": 3,
"column": 4,
"message": 5
}
},
{
"owner": "gulp-typescript",
"fileLocation": "absolute",
"pattern": {
"regexp": "\\[gulp-typescript\\] (.*)\\((\\d*),(\\d*)\\): (error|warning) (.*)",
"file": 1,
"line": 2,
"column": 3,
"severity": 4,
"message": 5
}
}
]
}
]
}
マイ一気のタスク定義:
const tslint = require('gulp-tslint');
const typescript = require('gulp-typescript');
gulp.task('watch', function() {
gulp.watch(srcTsFiles, ['tslint', 'compile']);
});
gulp.task('tslint', function() {
return gulp.src(srcTsFiles)
.pipe(tslint())
.pipe(tslint.report('prose', {
emitError: false,
summarizeFailureOutput: true
}));
});
var tsProject = typescript.createProject('tsconfig.json');
gulp.task('compile', function() {
tsProject.src()
.pipe(typescript(tsProject, undefined, typescript.reporter.longReporter()))
.pipe(gulp.dest('dist'));
});
はまだVSCodeの現在のバージョンで起こります。 –
公式レポの問題を作成しました.. https://github.com/Microsoft/vscode/issues/1229 –