angular-cli - Angular CLI 构建 SourceMaps,但不部署它们
问题描述
我们正在使用前端错误记录工具Sentry
来查看我们在 Angular 应用程序中遇到的错误。
Sentry
允许用户上传他们的 SourceMap 文件,所以我进入了我们angular.json
并设置了"sourceMap": true
. 正如预期的那样,它会创建很多.js.map
我们上传到的文件,但出于明显的安全原因Sentry
,我们会删除它们并且不部署它们。
问题在于,由于某种原因,Google Chrome 开发工具不知何故知道 SourceMap 文件已生成,甚至尝试访问它们!
所以这是我的问题:
- 谷歌浏览器如何确定 SourceMaps 是生成的?我假设
html
,css
orjs
文件中的某些内容说明了这一点。 - 我该如何解决这个问题?我想获得 SourceMaps,但我不想让任何人知道它们的存在,尤其是它们的位置。
旁注:虽然我多次提到 Sentry,但这与问题无关。我只是想解释一下,为什么我们想要这个。
解决方案
首先:
正如@jonrsharpe 所指出的,事实证明,Angular在文件//# sourceMappingURL=...
末尾注入了注释,css
而js
Google Chrome(可能还有其他浏览器)会解析它并使用它来显示原始堆栈跟踪。
第二:
通过配置参数,这似乎是可行hidden: true
的sourceMap
,如下所示:
"sourceMap": { "scripts": true, "styles": true, "hidden": true, "vendor": true }
它似乎sourceMap
可以是一个bool
或一个复杂的对象。请在此处查看角度文档。
推荐阅读
- php - 如何使用 $request 或任何其他方法从资源路由中获取参数?
- google-apps-script - 为什么这个 Utilities.sleep 在它之前和之后的方法之前执行?
- php - 我如何使这个页面工作它只是重定向到主页
- codeigniter - 如何在 CodeIgniter 中转义 form_dropdown 值
- git - gitignore 不适用于 Visual Studio
- android - 自定义文本中的android recyclerview分隔符
- python - 对传递给函数的列表进行多处理
- android - 如何在bottomNavigationView android的项目上显示徽章?
- android - 在食品订购应用程序中是否有任何库或小部件用于添加按钮
- jenkins - 工件的版本控制 - CI/CD