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

欢迎!请查看 关于 页面获取更多有关此操作的信息。

0
ClojureScript

字符串 require 真正变得必要时只有当存在多个斜杠。我们可以支持这种风格作为只有一个斜杠的依赖项的符号,因为它是一个有效的符号。

5 个答案

0

评论由:thheller 提出

我再说一遍...使用字符串 require 有什么不好的?合格符号对正常的 CLJS 代码是非法的,而使用字符串已经解决了所有潜在的问题。添加一个只有在有一个斜杠时才可以使用符号的情况,而在有两个斜杠时不可以使用,只会使新用户感到困惑而没有任何额外的好处。

0

评论由:deraen 提出

我可以看到只允许使用字符串的斜杠的好处。

但是,如果我们这样做,可能需要检查我们在尝试这样做时给出的警告

`
(ns example.core
(:require [react-dom/server :as sdf]))

没有此类命名空间:react-dom/server,找不到 react_dom_SLASH_server.cljs、react_dom_SLASH_server.cljc 或提供 "server" 的 JavaScript 源代码。
`

请注意,它说 "server" 而不是 react-dom/server。这是因为所有内容都允许斜杠,但外部库代码仅使用名称部分而不是命名空间。(此补丁不会更改警告。)

0

评论由:thheller 提出

在处理JS的require时存在其他模糊性,这就是我总是主张在所有情况下都使用字符串的原因。

技术上,我们可以让{{(:require [@scoped/thing :as thing])}}正常工作,但不应该这样做。

此外,我很确定我看到了几个JS包,它们的名称中使用了“-”或“_”。对于CLJS,我们总是将其转换为下划线,如果我们不对JS做这种转换,这将会增加更多的混淆。

是的,警告应该被修复,但如果使用了字符串,这些问题甚至都不会出现。

0

评论者:mfikes

已将CLJS-2346.patch添加到补丁宝库(i)

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