我正在编写一个工具,它将使用 browserify 转换在许多 JavaScript 文件的顶部和底部添加几行。我试图弄清楚如何生成包含原始源转换以及删除由我的附加行创建的偏移量的源映射。例如:
# original source file - test.coffee
console.log "test"
使用 coffeescript 编译器将其转换为
// Generated by CoffeeScript 1.6.3
(function() {
console.log("test");
}).call(this);
/*
//@ sourceMappingURL=test.map
*/
coffeescript 编译器还提供了一个 sourceMappingURL 指向一个映射,例如
{
"version": 3,
"file": "test.js",
"sourceRoot": "",
"sources": [
"test.coffee"
],
"names": [],
"mappings": ";AAAA;CAAA,CAAA,CAAA,GAAA,CAAO;CAAP"
}
我需要通过在前后添加几行来修改 JavaScript 文件输出。
my.instrumentation.line(1);
my.instrumentation.line(2);
// Generated by CoffeeScript 1.6.3
(function() {
console.log("test");
}).call(this);
my.instrumentation.line(8);
my.instrumentation.line(9);
我需要弄清楚如何使用咖啡脚本编译器提供的映射文件来映射我的更改,并通过咖啡脚本编译器,一直映射到原始咖啡脚本源。
目前,只要没有额外的源映射可以使用,我就可以进行此源映射。例如,如果我从 JS 而不是 CS 开始,我可以使用Thorsten Lorzen 的 inline-source-map 库生成一个源图,只要没有进行第二级转换,它就可以正常工作。在同一原始源上组合多个源映射时,我很困惑该怎么做。
任何帮助或建议将不胜感激。