29

在 0.3.0 中,我看到了 typescript 的智能感知。但是,我也期待看到一些 tslint,因为我有一个 tslint.json。VSC 是否支持原生 linting,还是我只需要依靠 gulp?

如果是后者,是否可以配置为在文件更改时运行,或者是否需要明确启动的手动任务。

4

2 回答 2

33

简短的回答

VSC 是否支持原生 linting,还是我只需要依靠 gulp?

是的。VS Code 支持使用TSLint 扩展进行 linting。没有必要吞咽。

将 TSLint 集成到 VS Code 中的步骤

首先,安装先决条件:TSLint 和 TypeScript。

npm install -g tslint typescript

其次,将tslint.json文件添加到您的项目根目录。您可以使用 来执行此操作tslint --init,它为您提供了很好的默认值。或者,创建文件并使用这个继承推荐规则的最小配置。

// tslint.json 
{
  "extends": "tslint:recommended",
  "rules": {}
}

第三,安装 VS Code 的 TSLint 扩展。

  1. 在项目的根目录中打开 VS Code。
  2. 打开命令面板CTRL+P
  3. ext install tslint.
  4. 选择Install,然后选择Enable,最后重启VS Code。

第四,享受您的集成 TS Lint。

TSLint 在 VS 代码中的作用。

于 2016-08-09T23:44:19.793 回答
5

您可以向 gulpfile 添加 linting 任务,如下所示。甚至是观察者任务。请注意,我只使用 TypeScript,而不是 gulp 插件或 tslint,尽管它们也很好。

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();
    });
}
于 2015-06-08T01:54:14.160 回答