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

欢迎!请查看关于页面,了解更多关于该功能的信息。

0
ClojureScript

当前即使没有打印,调用 (enable-console-print!) 也会保留大量的代码在:高级模式下。

虽然这并不是最佳方案,但它不会导致运行时错误。不调用它并尝试打印将会抛出异常,可能会破坏您的应用程序。

评估环境未设置 *print-fn* 函数

因此,对于:高级构建来说,我们陷入了一个无胜之境,一个“遗忘的”{{prn}}可能会破坏您的生产环境中的应用程序,或者“可能”通过保留所有的打印相关内容来膨胀文件大小。

我认为没有打印函数设置的情况永远不会抛出异常,或许只是尝试使用console.log打印警告。或者完全删除{{prn}}。

4 个回答

0

评论者:dnolen

让我们把旧的行为移动到 string-print

0

评论者:mfikes

附带的CLJS-2002.patch将抛出移动到{{string-print}}并使用{{nil}}作为两个变量的初始化,解决了CLJS-2231。但这并没有解决按问题描述的票据:在代码中留下无意的{{prn}}会导致调用{{string-print}}并抛出异常。

0

评论者:dnolen

https://github.com/clojure/clojurescript/commit/797e247fbef676544060a57da995f058db061f37 部分解决了此问题。我们应将其保持开放状态,降低优先级,并重新审视。

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