【发布时间】:2013-10-21 13:38:04
【问题描述】:
我正在编写一个工具,它将使用 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);
我需要弄清楚如何使用coffeescript编译器提供的映射文件来映射我的更改,并通过coffeescript编译器,一直映射到原始coffeescript源。
目前,只要没有额外的源映射可以使用,我就可以进行此源映射。例如,如果我从 JS 而不是 CS 开始,我可以使用 Thorsten Lorzen's inline-source-map library 生成源映射,只要没有进行第二级转换,它就可以正常工作。在同一原始源上组合多个源映射时,我很困惑该怎么做。
任何帮助或建议将不胜感激。
【问题讨论】:
-
你见过Mozilla's source maps library吗?在节点中工作,可能满足您的需求?
标签: javascript coffeescript browserify source-maps