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

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

0
ClojureScript

我想开发针对远程节点目标进行编译的 ClojureScript,并在我的开发机器上运行 REPL。
https://github.com/clojure/clojurescript/wiki/Remote-REPL 建议了一种实现这种方式,然而

!) 我还没有成功使其工作。
2) 我不喜欢这个解决方案依赖于相同的绝对文件路径来输出编译器,最好是使用匹配的相对路径。

我在论坛上发帖寻求帮助,但没有解决所有问题
https://groups.google.com/forum/#!topic/clojurescript/Y4ajOcej8Qo

自那以后我又取得了一些进展
1) 我深入研究了 cljs.repl.node 源代码,发现可以通过指定 repl-env :debug-port 来停止我报告的节点挂起问题,并获取

Clojure 1.8.0
调试器正在监听端口 5002
ClojureScript Node.js REPL 服务器正在监听 5001
TypeError: Cannot read property 'nameToPath' of undefined

at Object.goog.require (repl:2:49)
at repl:1:-56
at Object.exports.runInThisContext (vm.js:54:17)
at Domain.<anonymous> ((link: stdin):50:34)
at Domain.run (domain.js:221:14)
at Socket.<anonymous> ((link: stdin):49:25)
at emitOne (events.js:77:13)
at Socket.emit (events.js:169:7)
at readableAddChunk (_stream_readable.js:146:16)
at Socket.Readable.push (_stream_readable.js:110:10)

TypeError: goog.provide is not a function

at repl:1:-56
at Object.exports.runInThisContext (vm.js:54:17)
at Domain.<anonymous> ((link: stdin):50:34)
at Domain.run (domain.js:221:14)
at Socket.<anonymous> ((link: stdin):49:25)
at emitOne (events.js:77:13)
at Socket.emit (events.js:169:7)
at readableAddChunk (_stream_readable.js:146:16)
at Socket.Readable.push (_stream_readable.js:110:10)
at TCP.onread (net.js:523:20)

要退出,请输入: :cljs/quit

这看起来像是一种路径问题,但我还没有解决。

我对我原始的相对路径设置进行了一些调查,以尝试确定问题所在
1) 我通过禁用分析缓存消除了编译输出中的绝对路径。
2) 我在 REPL 端口上运行了 wireshark,发现 REPL 正在发送绝对路径,这目前使得相对路径选项不可行。

目前我对 REPL 操作的知识还有很多空白,不知道用什么方法才能得到一个好的无浏览器远程 REPL 设置解决方案。

2 答案

0

评论由:dnolen 提出

我认为先在 IRC 或 Slack 上讨论这个问题会更加容易。这个问题包含了很多不同的难题。谢谢。

0
by
参考: https://clojure.atlassian.net/browse/CLJS-1933(由longworthml报告)
...