2024 Clojure 状态调查!中分享您的想法。

欢迎!请查看关于页面了解更多此网站的详细信息。

+6
ClojureScript

如果能有一种方法使源映射与 React Native 和 shadow-cljs 一起工作,将非常有用,因为目前 bundler 会阻止提供额外的源映射,所以它不是开箱即用的,需要某种类型的解决方案。

https://github.com/facebook/metro/issues/104

在使用 React Native 和 figwheel 时可以解决这个问题;我想知道是否可以通过 shadow-cljs 做些什么使源映射正常工作 - 例如自己合并源映射。

我注意到有几个合并源映射的软件包 - 例如 sorcery https://npmjs.net.cn/package/sorcery 和 merge-source-maps https://npmjs.net.cn/package/merge-source-maps - 但我不确定如何将这些集成到 bundler 中。

1个答案

+2

已被选中
 
最佳答案

我理解源映射仅在启用“在 Chrome 中调试”选项并将 JS 代码实际加载到 Chrome 时才有效?否则,我可能遗漏了某个重要的地方,因为由 metro 处理的源的确不支持合并源映射。

在接下来几周内,我将致力于解决react-native的支持问题,届时我会深入研究这一问题。

by
是的,源映射只在启用“在Chrome中调试”时才生效——但这对于开发来说已经足够有用。如果在出错时开启“捕获异常时暂停”,调试器将中断,并将您带到导致错误的行。在figwheel的开发模式下,这将被映射回ClojureScript文件(可能是因为打包器被绕过了?)。
by
的确,metro被绕过了,源文件是动态加载的。

这也可以(可能即将)在shadow-cljs上实现。我仍然希望metro/babel能够添加对此的支持,但这似乎不会很快发生。
. by
更新一下这里,shadow-cljs的最新版本(2.8.45)支持以这种方式在开发中进行源映射——感谢Thomas!
...