2024年Clojure调查问卷中分享您的想法!

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

0
ClojureScript
已关闭

hi everyone

我在Windows 10上尝试按照"ClojureScript快速入门"中的说明进行操作。我尝试了
在WSL中的Ubuntu方式和powershell方式。但是,两种方式都失败了。Ubuntu失败时

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

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

--->>> 那么,该怎么使用网络打开浏览器呢?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的方式,在WSL中使用docker的方式?任何可行的方式,请。谢谢!

已设置关闭提示: 解决了

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.38秒)
cljs.user=> (+ 3 2)           <<-- 我之后输入的
没有可用的JS运行时。
请参阅 https://shadow-cljs.github.io/docs/UsersGuide.html#repl-troubleshootingcljs.user=>
(匿名) @ (index):5551
请勿使用https,默认服务器只使用http。

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

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

我刚刚重新访问了cljs开发。我几年前开始使用figwheel,然后升级到了figwheel-main。readme和相关教程 https://github.com/bhauman/figwheel-main 在讨论clojurescript底层操作方面相当优秀。他们为CLI和leiningen(我通常使用的)提供了路径。在过去的一周左右,我使用emacs连接到浏览器repl,在W10上用cljs开发了一个相当复杂的前端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/
都无法工作,网页为空,显示

该网站无法访问<(br>,网页位于http://0.0.0.0:3449/可能暂时无法访问或已永久移动到新的网址。
地址无效错误

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

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

有什么线索吗?

0

感谢大家的帮助!我终于自己解决了这个问题。我尝试了一些其他的Web框架。最终我发现,我需要使用显式的IP地址(例如:192.168....或172....),而不是0.0.0.0、localhost或127.0.0.1。我在Vue.js中发现了问题,所以我猜ClojureScript可能也有这样的情况。的确如此!

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

...