【发布时间】:2019-09-23 10:52:38
【问题描述】:
上下文
我正在使用 ClojureScript 和 shadow-cljs 构建一个 Node.js 库。
所有开发都是使用 ClojureScript 完成的,但构建工件是一个 NPM 包。示例:
(ns com.example.answer)
(defn answer [] 42)
构建...发布...然后
const answer = require('answer');
answer(); //=> 42
注意:我最近向this post 提供了构建设置的详细信息。
我的整个开发环境都在一个 Docker 容器中,我正在使用“Visual Studio Code Remote - Container”扩展。
- ClojureScript v1.10
- Node.js v12
- shadow-cljsv2.8.55
- Visual Studio Code Calva 扩展(在 VS Code remote container 中运行)
“问题”
我的构建设置运行良好(至少我是这么认为的!)但我希望实现更快的开发反馈周期。
换句话说:我不想仅仅为了测试几行更改而重建整个 NPM 包。
完美世界 又名“问题”
在一个完美的世界里,我应该能够打开一个 REPL 并能够随时评估我的 ClojureScript 代码。
无论我如何尝试到达那里,我似乎都被同样的潜在问题所阻止:
没有应用程序连接到 REPL 服务器。确保您的 JS 环境已加载您编译的 ClojureScript 代码。
我尝试了什么
-
仅限
shadow-cljs:给定以下
shadow-cljs.edn文件:;; shadow-cljs configuration {:source-paths ["src"] :builds {:lib {:target :node-library :output-to "dist/index.js" :exports {:citation citegen.processor.main/citation}}}}第一次观看:
root@97db64e5dfa3:/workspaces/citegen# cd packages/csl-processor/ root@97db64e5dfa3:/workspaces/citegen/packages/csl-processor# yarn shadow-cljs cljs-repl lib yarn run v1.17.3 $ /workspaces/citegen/node_modules/.bin/shadow-cljs cljs-repl lib shadow-cljs - config: /workspaces/citegen/packages/csl-processor/shadow-cljs.edn cli version: 2.8.52 node: v12.10.0 shadow-cljs - socket connect failed, server process dead? shadow-cljs - updating dependencies ... shadow-cljs - dependencies updated shadow-cljs - server version: 2.8.52 running at http://localhost:9630 shadow-cljs - nREPL server started on port 36017 [0:0]~cljs.user=>然后在另一个终端:(注意错误信息)
root@97db64e5dfa3:/workspaces/citegen# cd packages/csl-processor/ root@97db64e5dfa3:/workspaces/citegen/packages/csl-processor# yarn shadow-cljs cljs-repl lib yarn run v1.17.3 $ /workspaces/citegen/node_modules/.bin/shadow-cljs cljs-repl lib shadow-cljs - config: /workspaces/citegen/packages/csl-processor/shadow-cljs.edn cli version: 2.8.52 node: v12.10.0 shadow-cljs - connected to server [1:1]~cljs.user=> (inc 41) No application has connected to the REPL server. Make sure your JS environment has loaded your compiled ClojureScript code. -
使用 VS 代码Calva:
给定与上述相同的
shadow-cljs.edn文件:当我尝试使用
Calva: Load current namespace in REPL window手动加载命名空间时,我得到了同样的错误:没有应用程序连接到 REPL 服务器。确保您的 JS 环境已加载您编译的 ClojureScript 代码。
问题:我如何到达那个完美的世界?
【问题讨论】:
标签: node.js clojurescript shadow-cljs vscode-calva