我想为远程的Node.js目标开发ClojureScript,将Clojurescript编译运行在开发机上,并且在一个REPL上运行。
https://github.com/clojure/clojurescript/wiki/Remote-REPL 建议了一种实现方法,但
!) 我还没有解决这个问题。
2) 我不喜欢这个解决方案依赖于相同的确切绝对文件路径的编译输出,最好能有匹配的相对路径。
我为此发布了一篇帖子,寻求帮助,但尚未解决所有问题
https://groups.google.com/forum/#!topic/clojurescript/Y4ajOcej8Qo
自上次发布以来,我取得了一些进展
1) 我深入研究clid.repl.node源代码,通过指定repl-env :debug-port 停止了我报告的Node挂起,并获得
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设置解决方案的最佳方法。