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

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

0 投票
ClojureScript
已关闭

嗨,大家都好吗

我试图按照“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方式,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

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

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

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

shadow-cljs - 服务器版本:2.13.0,运行在https://127.0.0.1:9630
shadow-cljs - 在端口13545上开始nREPL服务器
[: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。关于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 投票

谢谢大家!我终于自己搞明白了。我试着使用了其他一些Web框架。最后我发现,我需要使用显式的IP(例如:192.168..... 或 172.....),而不是 0.0.0.0 或 localhost 或 127.0.0.1。我在Vue.js中发现了这个问题,所以我想ClojureScript也可能是这样。果然是!

感谢大家尝试帮助。你们都是好人。希望我们可能在其他时候互相帮助。谢谢!

...