Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Angular CLI生成源地图并将其上载到Sentry?_Angular_Continuous Integration_Source Maps_Sentry - Fatal编程技术网

如何使用Angular CLI生成源地图并将其上载到Sentry?

如何使用Angular CLI生成源地图并将其上载到Sentry?,angular,continuous-integration,source-maps,sentry,Angular,Continuous Integration,Source Maps,Sentry,有两种方法可以设置sourcemaps:将它们托管在站点上并在捆绑文件中引用,或者直接将它们上载到sentry之类的服务。我正在努力实现后者。问题在于,如果不将文件路径写入捆绑文件,似乎无法使用angular cli生成sourcemaps 我的第一个想法是有两个构建—一个是使用sourcemaps生成,另一个是不使用sourcemaps生成。然后,我只需在没有sourcemaps的情况下部署构建,并将构建与它们一起上传到sentry。这不起作用,因为捆绑包文件名不同(angular cli使用

有两种方法可以设置sourcemaps:将它们托管在站点上并在捆绑文件中引用,或者直接将它们上载到sentry之类的服务。我正在努力实现后者。问题在于,如果不将文件路径写入捆绑文件,似乎无法使用angular cli生成sourcemaps

我的第一个想法是有两个构建—一个是使用sourcemaps生成,另一个是不使用sourcemaps生成。然后,我只需在没有sourcemaps的情况下部署构建,并将构建与它们一起上传到sentry。这不起作用,因为捆绑包文件名不同(angular cli使用文件哈希作为文件名进行缓存破坏,当您生成sourcemaps时,它会将.map文件的路径作为注释添加到末尾,从而导致哈希和文件名的更改)

我的另一个选择是使用sourcemaps构建,将它们上传到sentry,然后在部署站点之前删除地图文件。但问题是捆绑文件仍然包含对现在不存在的映射文件的引用。这本身不应该是一个问题,但它可能会引起扩展或浏览器的问题,看起来就像一个黑客解决方案


您将如何在构建过程中实现类似的功能?

这篇文章解释了如何将angular sourcemaps上载和监视到sentry。

如评论中所述,您可以在
angular.json
文件中启用
sourcemaps
,如下所示:

“配置”:{
“生产”:{
“源地图”:{
“剧本”:没错,
“风格”:没错,
“隐藏”:真实
},
此外,我建议您在上传到sentry之后和部署之前删除
.map
文件。因此,在ci中添加以下行:

rm-rf dist/YOUR_PROJECT/*.map

你找到了解决方案吗?@NicholasColes我在回购协议上创建了一个功能请求,该请求已添加到待办事项中-现在有人提出了解决方案吗?我也有同样的情况,如果有人找到了实现这一点的方法,那就太好了。我想我找到了答案,但还没有尝试:@Anthony a soluti已合并上的: