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

欢迎!有关如何使用本服务的更多信息,请参阅 关于 页面。

0 投票
ClojureScript

ClojureScript 会静默地忽略缺失的 externs 文件,这可能导致开发者陷入困境。

目前,如果你在某个 :externs 文件的路径名中犯了错误,使用高级编译功能可能会非常令人困惑。此补丁使编译器在 stderr 上打印警告,以便您可以快速确定损坏的高级编译输出的原因。

作为副作用,在进行基本的 lein-cljsbuild 时,总会打印警告

警告:js 资源路径 closure-js/externs 不存在

这是因为 lein-cljsbuild 在你不知情的情况下,会悄悄地将此附加路径添加到你的 :externs 列表中。

9 个回答

0 投票

评论由:dnolen 提供

您需要将 绑定到 },或者直接打印到它,类似于 {{cljs.util/debug-prn}}。

0 投票

评论由:retrogradeorbit 提供

我已经将输出发送到 err。请检查补丁。

0 投票

评论由:dnolen 提供

Crispin,抱歉,你是正确的。谢谢。

0 投票
0 投票

评论由:dnolen 提供

该解决方案不适用于 cljsbuild。不清楚为什么在 {{deps.clj}} 所采取的方法上投入了如此多的机制。

0 投票

评论由:dnolen 提供

这个 cljsbuild 问题导致停滞 https://github.com/emezeske/lein-cljsbuild/issues/383

0 投票

评论由:retrogradeorbit 提供

这个 lein-cljsbuild 问题是促使我最初只将其设置为警告,而不是像引发 IllegalArgumentException 那样抛出硬错误的原因。虽然我同意它应该是一个硬错误。如果我们从警告开始,它允许开发者立即解决当前问题,并留下一个对 cljs-build 项目来说是需要修复的问题。然后在那一端修复后,可以将其设置为硬错误。如果 cljsbuild 很快就得到修复,那么一切都是好的,但如果需要很长时间,警告可能是一个好的第一步。

0 投票

评论人:mfikes

补丁不再适用。(此外,它与 {{git am}} 不兼容——见 https://script.clojure.org/community/patches.)

0 投票
参考: https://clojure.atlassian.net/browse/CLJS-994 (由 alex+import 报告)
...