我希望开发用于远程nodejs目标的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来停止我报告的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设置的良好解决方法。