2017-08-16 17 views
3

我的目标是获取发出(JavaScript)文件中特定TypeScript AST节点的位置(开始和结束)。TypeScript编译器api:获取特定AST节点的生成代码中的位置

就拿这个代码:

const program = ts.createProgram(tsconfig.fileNames, tsconfig.options); 
const aNode = program.getSourceFiles()[0].getChildAt(1); 
const emittedFiles = []; 
program.emit(/*targetSourceFile */undefined, /*writeFile*/ (fileName, content) => emittedFiles.push({ fileName, content })); 

我怎样才能获得通过aNode代表发出的代码的位置?

我现在试试这种方式是通过捕获源地图文件并使用https://npmjs.org/package/source-map反向工程位置。然而,源地图文件只给我一个位置的估计。

是否有任何方法可以使用源映射文件对确切位置进行反向工程,或者在发射阶段将节点写入JavaScript输出时截取确切位置?

回答