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

欢迎!请参阅关于页面以了解更多关于如何使用本网站的信息。

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

相关:CLJS-1402, CLJS-1901

15 答案

0

由: darwin 评论

完整审查:https://github.com/clojure/clojurescript/compare/darwin:inline-source-maps~3...darwin:inline-source-maps

请注意,第一个补丁测试原始功能时在一个测试中失败,因为在 :source-map-url 情况中时间戳格式化存在错误。
https://github.com/clojure/clojurescript/compare/master...darwin:inline-source-maps#diff-55b85385d2d0bfb6dc20d59ed982d5c8L1239

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

评论由:skrat 提出

这对我们来说也很有帮助。

0
_评论由: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

评论由:dnolen 提出

不在 JIRA 外面链接补丁是不合适的。请将单个压缩补丁直接添加到此票。

0

由: darwin 评论

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

提取了 https://github.com/darwin/clojurescript/compare/inline-source-maps~4...darwin:inline-source-maps.diff 并将其应用到当前的 master 版本中。它干净地应用,没有冲突。在我机器上测试仍然通过。

0

评论由:mfikes 提出

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

0

由: darwin 评论

现在开发 chrome 扩展时,源映射再次损坏了(链接:1)。可能是因为 Chrome 允许 Chrome 开发者工具“看到”的一些增加的安全限制。

网上的某些人声称内嵌源映射是一个可能的解决方案
https://stackoverflow.com/a/54761431/84283

(链接:1) https://bugs.chromium.org/p/chromium/issues/detail?id=931675

0

评论由:dnolen 提出

只是指出,我对所提出的建议表示满意。请重新设置补丁基线,我会在不久的将来进行审查。

0

由: darwin 评论

谢谢。我会在本周尝试查看这个问题。

0

由: darwin 评论

0

评论由:mfikes 提出

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

尤其是在Windows下。

这是失败的一个实例

在(test-external-source-maps)测试中失败(source_maps_tests.clj:79) 1103source maps在:none优化下有:source-map-asset-path 1104预期:(check-file (build-result out "main.js") ["sourceMappingURL=https://127.0.0.1:1234/some/path/source_maps/main.js.map" (! "rel=")]) 1105实际:(not (check-file "C:\\Users\\appveyor\\AppData\\Local\\Temp\\1\\cljs-tests-source-maps-build\\source-maps-onone-source-map-asset-path\\source_maps\\main.js" ["sourceMappingURL=https://127.0.0.1:1234/some/path/source_maps/main.js.map" #object[cljs.source_maps_tests.NegativeCheck 0x38c5d3ae "negative check for 'rel=' (class java.lang.String)]]))

其他实例的CI失败日志: https://ci.appveyor.com/project/mfikes/clojurescript/builds/24471651

0

由: darwin 评论

我查看了Windows构建,失败测试中的 sourceMappingURL 看起来是这样的(注意混合斜杠)

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

问题出在使用 {{util/path}} 的现有代码中,这是OS依赖的,在Windows下会产生反斜杠,我的补丁没有修改这一代码分支
https://github.com/clojure/clojurescript/blob/47386d7c03e6fc36dc4f0145bd62377802ac1c02/src/main/clojure/cljs/compiler.cljc#L1473

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

在我看来,方案2是更好的前进方式。我相信混合斜杠可以工作,因为浏览器具有容错性,在源映射解析中将反斜杠视为正斜杠。这个变更可能会以极小的几率破坏现有的代码,这取决于clojurescript以前如何生成带反斜杠的 sourceMappingURL。

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

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