可靠性: 格式不正确的 sourceMappingURL URI 会导致整个编译失败 (未捕获的 RuntimeException); deps.js 添加依赖项路径和 manifest 行未进行转义

作者: alencheung创建于 2026年9月11日更新于 2026年9月14日
  1. 一个不正确的 sourceMappingURL URI 会导致整个编译失败 src/com/google/JavaScript/jscomp/SourceMapResolver.java:83-89:
java
private static boolean isAbsolute(String url) {
  try {
    return new URI(url).isAbsolute() || url.startsWith("/");
  } catch (URISyntaxException e) {
    throw new RuntimeException("Sourcemap url was invalid: " + url, e);
  }
}

一个以 //# sourceMappingURL=http://a b/ 结尾的输入文件(空格使其成为一个无效的 URI)会导致整个编译失败,不会捕获 RuntimeException - 没有诊断信息,没有错误计数,只是来自编译器内部的堆栈跟踪。默认标志下(resolveSourceMapAnnotations 默认为 true),它可以被触发,并且在 CompilerInput.parse 中,因此失败发生在输入中可能会报告问题的任何步骤之前。一个不正确的注释在一个文件中也隐藏了运行中可能产生的所有普通诊断信息。

内容来源: google/closure-compiler