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

欢迎!请参阅关于页面获取更多关于如何使用本站的信息。

0
ClojureScript

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

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](https://clojure.atlassian.net/browse/CLJS-2346)(由anmonteiro报告)
...