如何使用Closure Controller获取相对路径,而不是地图文件中的完整路径? `

时间:2015-11-24 08:36:25

标签: google-closure-compiler

我正在使用 Google Closure Compiler 来缩小我的JS脚本:https://developers.google.com/closure/compiler/docs/gettingstarted_app?hl=en

我正在使用的命令是:

java -jar /home/user/compiler/compiler.jar --js $File::Find::name --create_source_map $File::Find::name.map --source_map_format=V3 --compilation_level=WHITESPACE_ONLY --js_output_file $minified --charset=Windows-1251 --output_wrapper '%output%\n//# sourceMappingURL=output.js.map'

这很好,除了一件事 - .js.map 文件有文件的 FULL 路径,而不是相对的路径:

"version":3,
"file":"/home/user/public_html/new_design/common37.min.js",
"lineCount":375,
....

我假设我可以在调用compiler.jar脚本时更改它吗?否则,我想我将不得不在我的脚本中添加更多代码(不是我想做的事情,如果它可能“开箱即用”)

编辑:我在Perl脚本中做了一些肮脏的黑客攻击:

        # now open the map file one, and edit it to remove the full path.. needs to be relative
        my $contents = File::Slurp::read_file("/home/user/public_html/$tmp.map");
        $contents =~ s|/home/user/public_html||g;
        File::Slurp::write_file("/home/user/public_html/$tmp.map",$contents);

正确删除了路径信息。我更喜欢在 .map 文件中选择使用相对网址(与当前输入的完整路径相比)

谢谢!

1 个答案:

答案 0 :(得分:1)

使用--source_map_location_mapping标志指定源映射位置转换。该标志需要一个格式为:

的值
--source_map_location_mapping=/filesystem/src/root|relative/source/root