2024年Clojure状态调查!中分享您的观点。

欢迎!有关本网站的工作方式,请参阅关于页面以了解更多信息。

0
ClojureScript
  1. 重构 emit-source-map 并将其分为多个函数
  2. 修复相对路径计算的逻辑(见 strip-prefix-path
  3. 添加对 :inline-source-maps 选项的支持
  4. 添加测试

相关:CLJS-1402, CLJS-1901

15 个答案

0
0

评论者:darwin

今天在测试Dirac时,我意识到我们还需要嵌入源内容。

额外补丁
https://github.com/darwin/clojurescript/commit/c1df38f14a33d02fe2d421f80db0b421b17286bb.patch

新的审查URL: https://github.com/darwin/clojurescript/compare/inline-source-maps~4...darwin:inline-source-maps

在DevTools中测试,效果非常好。

0
by

评论由:skrat 提出

这对我们来说也有帮助。

0
by
_评论由:arichiardi_ 提出

我通过这个教程[这个教程|https://yogthos.net/posts/2016-12-26-MacchiatoDebugging.html]也遇到过这种情况。

在没有这个补丁或[Dirac的复杂设置|https://github.com/binaryage/dirac-sample/blob/06321f53a34db73c1e9165c2b355e6e20b65ed14/project.clj#L86]的情况下,目前无法正确使用 {{node --inspect}} 来进行调试。我们在看到的一个症状是,源映射被检测到,但不知何故,Chrome 开发者工具中的树视图没有显示它们。

其中之一的内容如下


  {"version":3,"file":"\/Users\/user\/cqrs-engine-cljs\/out\/cqrs\/event_store.js","sources":["event_store.cljs"], ...



0
by

评论由:dnolen 提出

在 JIRA 之外链接补丁是错误的。请直接将单个压缩补丁添加到此任务中。

0
by

评论者:darwin

已将其作为补丁文件附加。

取自https://github.com/darwin/clojurescript/compare/inline-source-maps~4...darwin:inline-source-maps.diff并应用到当前 master 代码上。它可以干净地应用,没有冲突。在我的机器上测试仍然通过。

0
by

评论由:mfikes 提出

该补丁不再适用;需要重新基线。

0
0

评论由:dnolen 提出

0

评论者:darwin

谢谢。我将在这周内尝试查看。

0

评论者:darwin

  • rebase
  • 确保冲突的提交不会丢失:
  • 使用 java.util.Base64 编码器代替 javax.xml.bind.DatatypeConverter
0

评论由:mfikes 提出

CLJS-1902-2.patch 在 CI 中失败(x)

特别是在 Windows 下。

以下是失败的一个实例

在 (test-external-source-maps) 测试中失败(source_maps_tests.clj:79)

CI 错误日志及其他实例:https://ci.appveyor.com/project/mfikes/clojurescript/builds/24471651

0

评论者:darwin

我检查了那个windows构建,在失败的测试中,URL映射信息看起来这样(注意混合斜杠)

//# sourceMappingURL=https://127.0.0.1:1234/some/path/source_maps/main.js.map

问题在于现有的代码中使用了{{util/path}},它取决于操作系统,并在Windows下产生反斜杠,我的补丁没有修改那个代码分支
https://github.com/clojure/clojurescript/blob/47386d7c03e6fc36dc4f0145bd62377802ac1c02/src/main/clojure/cljs/compiler.cljc#L1473

我认为我们有两种可能的解决方案
1. 保持现有的行为不变,让我的测试接受混合斜杠
2. 新的使用仅向前斜杠,保持我的测试不变,并在下一个版本中宣布这是一个潜在的破坏性更改

我认为解决方案2是一个更好的前进方向。我相信混合斜杠是可行的,因为浏览器宽容地将反斜杠视为正斜杠进行源映射解析。这种更改可能会以极小的可能性破坏现有的代码,这取决于clojurescript迄今为止如何使用反斜杠生成URL映射信息。

我将留给你考虑。然后根据你的决定继续前进。

0
参考: https://clojure.atlassian.net/browse/CLJS-1902(由darwin报告)
...