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变量,但此程序执行的操作需要它。
您可以选择启动非浏览器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方式、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
hi,我试了您的步骤,我得到了

该站点无法提供安全的连接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=>
(匿名) @ (索引):5551
不要使用https,默认服务器只使用http。

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

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

我刚刚再次访问了cljs开发文档。我最初使用figwheel,然后升级到figwheel-main。该readme和相关教程https://github.com/bhauman/figwheel-main非常出色地讨论了clojurescript究竟在后台做了什么。他们提供了针对CLI和leiningen(我通常使用)的路径。在过去的一周左右,我在W10上使用emacs与浏览器repl连接开发了一个相当复杂的SPA。

0

hi,感谢各位尽力提供帮助。我试了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/
能行,网页是空的,显示了

无法访问该网页。
ERR_ADDRESS_INVALID

开发者工具控制台显示
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可能也是这样。确实如此!

感谢大家的帮助。你们都是好人。希望我们将来还能互相帮助。谢谢!

...