0

我们正在使用前端错误记录工具Sentry来查看我们在 Angular 应用程序中遇到的错误。

Sentry允许用户上传他们的 SourceMap 文件,所以我进入了我们angular.json并设置了"sourceMap": true. 正如预期的那样,它会创建很多.js.map我们上传到的文件,但出于明显的安全原因Sentry,我们会删除它们并且不部署它们。

问题在于,由于某种原因,Google Chrome 开发工具不知何故知道 SourceMap 文件已生成,甚至尝试访问它们!

在此处输入图像描述

所以这是我的问题:

  • 谷歌浏览器如何确定 SourceMaps 是生成的?我假设html, cssorjs文件中的某些内容说明了这一点。
  • 我该如何解决这个问题?我想获得 SourceMaps,但我不想让任何人知道它们的存在,尤其是它们的位置。

旁注:虽然我多次提到 Sentry,但这与问题无关。我只是想解释一下,为什么我们想要这个。

4

1 回答 1

3

首先: 正如@jonrsharpe 所指出的,事实证明,Angular在文件//# sourceMappingURL=...末尾注入了注释,cssjsGoogle Chrome(可能还有其他浏览器)会解析它并使用它来显示原始堆栈跟踪。

第二: 通过配置参数,这似乎是可行hidden: truesourceMap,如下所示:

"sourceMap": { "scripts": true, "styles": true, "hidden": true, "vendor": true }

它似乎sourceMap可以是一个bool或一个复杂的对象。请在此处查看角度文档

于 2019-08-01T14:37:16.863 回答