typescript编译器api,输出文件和句柄错误

时间:2015-03-31 03:40:59

标签: compilation typescript

我尝试与TypeScript compiler API wiki上的示例略有不同:

var host = ts.createCompilerHost(options);
var program = ts.createProgram(filenames, options, host);
var checker = ts.createTypeChecker(program, /*produceDiagnostics*/ true);
var result = checker.emitFiles();

问题有两个:

1)如何让emitFiles写入特定路径?

2)如何捕获和处理编译错误?

1 个答案:

答案 0 :(得分:2)

  

如何使emitFiles写入特定路径

emitFiles没有做任何实际的写作。它会返回它,需要编写它,所以你可以在任何地方写它。

e.g。

output.outputFiles.forEach(o => {
    mkdirp.sync(path.dirname(o.name));
    fs.writeFileSync(o.name, o.text, "utf8");
});
  

如何捕获和处理编译错误?

使用诊断:

var allDiagnostics = services.getCompilerOptionsDiagnostics()
    .concat(services.getSyntacticDiagnostics(filePath))
    .concat(services.getSemanticDiagnostics(filePath));

来源:https://github.com/TypeStrong/atom-typescript/blob/master/lib/main/lang/modules/building.ts#L28-L30不要忘记加星;)