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

欢迎!有关此功能的工作原理,请参阅 关于 页面。

0
ClojureScript
关闭

hi everyone

我尝试按照"ClojureScript快速入门"的说明在Windows 10上操作。我尝试了
在WSL中的Ubuntu方式和PowerShell方式。然而,两者都失败了。Ubuntu出错并显示

clj -M --main cljs.main --compile hello-world.core --repl
无法启动浏览器

没有设置X11 DISPLAY变量,但本程序执行的操作需要它。
您可以使用Node或Nashorn启动非浏览器REPL。
您可以使用此REPL选项禁用自动浏览器启动
:launch-browser false
并且您可以使用此REPL选项指定监听IP地址
:host "127.0.0.1"
等待浏览器连接到 https://127.0.0.1:9000 ...
ClojureScript 1.10.758
cljs.user=>

--->>> 那我该如何使用Web打开浏览器?REPL可以键入,但没有响应。(例如:(+ 1 2) 一点反馈都没有)

PowerShell方式失败,显示

java -cp "cljs.jar;src" cljs.main --compile hello-world.core --repl
ClojureScript 1.10.758
cljs.user=>

--->>> 然后就卡在那里,无法键入任何内容。localhost:9000会打开,但只是滚动/等待,控制台也没有“Hello World!”

有没有什么方法可以在Windows 10上启动ClojureScript?Docker方式,Docker在WSL方式?请提供任何可行的方式。谢谢!

附注: 已解决

4 个答案

+1

如果您已安装node.js,您可以尝试使用shadow-cljs。我是作者,也使用Windows,所以我确定它能正常工作。 ;)

尝试

npx create-cljs-project foo
cd foo
npx shadow-cljs browser-repl
# or
npx shadow-cljs node-repl

您可以直接在Windows上运行此代码或者通过WSL运行。当您使用WSL时,可能会收到浏览器无法自动打开的警告。在这种情况下,只需取用URL并在您的浏览器中手动打开。

Failed to open Browser automatically.
Please open the URL below in your Browser:
        https://127.0.0.1:9630/repl-js/browser-repl
嗨,我按照您的步骤尝试了,我得到

此网站无法提供安全连接 localhost发送了一个无效的响应。
ERR_SSL_PROTOCOL_ERROR

(即使我将 https 更改为 http)
在开发者工具控制台中,它显示

crbug/1173575,非JS模块文件已弃用。

原始命令窗口显示
.....

shadow-cljs - 服务器版本:2.13.0,正在通过 https://127.0.0.1:9630 运行
shadow-cljs - nREPL 服务器在端口 13545 上启动
[:browser-repl] 配置构建。
[:browser-repl] 编译...
[:browser-repl] 构建完成。 (119 个文件,0 编译,0 警告,6.38s)
cljs.user=> (+ 3 2)           <<-- 我稍后输入的
没有可用的JS运行时。
请参阅 https://shadow-cljs.github.io/docs/UsersGuide.html#repl-troubleshooting,cljs.user=>
(匿名) @ (index):5551
不要使用https,默认服务器只使用http。

您收到的“没有可用的JS运行时”错误是因为浏览器没有连接。如果您只需要REPL,可以使用node-repl。

就浏览器而言,您应该将其作为一个普通的网页打开。我不知道为什么它无法打开。这是哪个浏览器?crbug 的事情暗示是Chrome,但错误似乎来自开发者工具本身,所以它与您要打开的页面无关?
0

我最近又回顾了 ClojureScript 的开发。我多年前开始使用 figwheel,然后升级到 figwheel-main。关于 clojurescript 的内部操作,readme 文档及其相关教程 https://github.com/bhauman/figwheel-main 非常出色。它们为 CLI 和 leiningen(通常我使用)提供了路径。我上周开始在一台 Windows 10 上用 emacs 连接到浏览器 repl 进行开发了,开发的是一个比较复杂的单页应用程序(SPA)。

0

嗨,感谢大家帮忙。我尝试了 figwheel 和 reagent,也许有更简单的方法。但遗憾的是我仍然失败了。我的步骤是

lein new figwheel hello-world -- --reagent
然后
cd hello-world
npm install
lein figwheel

按道理这似乎应该会工作,看起来也是这样(没有错误)。但是我的网页
不论是
http://0.0.0.0:3449/
还是
https://127.0.0.1:3449/
都不工作,网页为空并且显示

这个网站无法访问http://0.0.0.0:3449/可能暂时不可用,或者它可能已经被永久移动到一个新的网址。
错误码:ERR_ADDRESS_INVALID

开发者工具控制台显示
crbug/1173575,非JS模块文件已弃用。
(匿名) @ VM1234:5551

我在 Windows 10 上尝试了上述操作。然而,我也在 WSL(Ubuntu)中尝试过,表现相同。我已经关闭了所有防火墙,没有阻止任何东西。也没有安装任何杀毒软件。我真的不明白为什么这个简单的功能就是无法工作。

有什么线索吗?

0

谢谢大家!我终于自己搞明白了。我尝试了一些其他网络框架。最后我发现,我需要使用显式 IP(例如:192.168..... 或 172.....),而不是 0.0.0.0 或 localhost 或 127.0.0.1。我在 Vue.js 中发现了问题,所以我猜 ClojureScript 可能也会有相同的问题。确实如此!

感谢大家尝试帮助。你们都是好人。希望我们将来有机会互相帮助。谢谢!

...