TypeScript最近添加了“ --incremental”编译器选项。
如何与TS编译器API一起使用?
该程序不会生成.tsbuildinfo文件,并且第二次运行不会更快:
import * as ts from "typescript";
const program = ts.createProgram(["./src/foo.ts"], {
incremental: true,
tsBuildInfoFile: "./tsbuildinfo"
});
const emit = program.emit();
console.log('emitted', JSON.stringify(emit)); // { emitSkipped: false, diagnostics: []}
我认为TS实际上并没有在意tsBuildInfo文件的路径,因为如果将tsBuildInfoFile
选项设置为“ @@@@@@@”这样的废话,这并没有什么区别。
答案 0 :(得分:2)
使用常规程序时,tsBuildInfoFile
将被忽略。您将需要使用ts.createIncrementalProgram
函数来创建程序。
例如:
import * as ts from "typescript";
const program = ts.createIncrementalProgram({
rootNames: ["./src/foo.ts"],
options: {
incremental: true,
tsBuildInfoFile: "./tsbuildinfo"
}
});
const emit = program.emit();
console.log('emitted', JSON.stringify(emit));
此外,如果要创建主机,则似乎可能需要使用ts.createIncrementalCompilerHost
函数来创建它。