TypeScript API Builder程序不发出

时间:2019-06-15 04:44:17

标签: typescript

我试图基于API Wiki构建增量TypeScript观察器,但是我无法获取它来发出输出。保存时它会检测到更改,并说没有错误,并调用emit,但是从没有任何输出。我已覆盖emit以查看发生了什么(Wiki中的代码无法正常工作,因此我添加了该覆盖),并且emitSkipped为假,但是sourceFile和{{1} }都未定义。我想念什么?我正在使用TypeScript 3.0.3

emittedFiles

tsconfig.json:

const createProgram = ts.createSemanticDiagnosticsBuilderProgram;

const host = ts.createWatchCompilerHost(
    configPath,
    {},
    ts.sys,
    createProgram,
    reportDiagnostic,
    reportWatchStatusChanged
);


const origCreateProgram = host.createProgram;
host.createProgram = (
    rootNames,
    options,
    host,
    oldProgram
) => {
    return origCreateProgram(rootNames, options, host, oldProgram);
};   

const origPostProgramCreate = host.afterProgramCreate;

host.afterProgramCreate = program => {
    const origEmit = program.emit;
    program.emit = (
        sourceFile,
        writeFileCallback,
        cancellationToken,
        emitOnlyDtsFiles,
        customTranformers
    ) => {
        console.log(`emit called ${sourceFile}`);
        const emitResult = origEmit(sourceFile, writeFileCallback, cancellationToken, emitOnlyDtsFiles, customTranformers);
        console.log(emitResult.emitSkipped);
        console.log(Object.keys(emitResult));
        console.log(emitResult.emittedFiles);
        emitResult.diagnostics.forEach(d => {
            reportDiagnostic(d);
        })
        return emitResult;
    };
    origPostProgramCreate(program);
};

0 个答案:

没有答案