Reputation: 5136
In 0.3.0, I'm seeing intellisense for typescript. However, I was also expecting to see some tslinting as I have a tslint.json. Does VSC support linting natively or do I just need to lean on gulp?
If the latter, is it configurable to run as files are changed or does it need to be a manual task that is launched explicitly.
Upvotes: 29
Views: 33170
Reputation: 141512
Does VSC support linting natively or do I just need to lean on gulp?
Yes. VS Code supports linting with the TSLint extension. There is no need for gulp.
First, install prerequisites: TSLint and TypeScript.
npm install -g tslint typescript
Second, add a tslint.json
file to your project root. You can do this with tslint --init
, which gives you nice defaults. Alternatively, create the file and use this minimal config, which inherits recommended rules.
// tslint.json
{
"extends": "tslint:recommended",
"rules": {}
}
Third, install the TSLint extension for VS Code.
ext install tslint
. Fourth, enjoy your integrated TS Lint.
Upvotes: 34
Reputation: 22298
You can add a linting task to your gulpfile like below. Or even a watcher task. Notice I just use TypeScript, not gulp plug in nor tslint, though they are fine too.
gulp.task('ts-watcher', function() {
gulp.watch('./src/**/*.ts', ['ts-compile']);
});
gulp.task('ts-compile', function(done) {
runTSC('src/client', done);
});
function runTSC(directory, done) {
var tscjs = path.join(process.cwd(), 'node_modules/typescript/bin/tsc.js');
var childProcess = cp.spawn('node', [tscjs, '-p', directory], { cwd: process.cwd() });
childProcess.stdout.on('data', function (data) {
// Code will read the output
console.log(data.toString());
});
childProcess.stderr.on('data', function (data) {
// Code will read the output
console.log(data.toString());
});
childProcess.on('close', function () {
done();
});
}
Upvotes: 5