環境
ClojureScript とshadow-cljsを使用して Node.js ライブラリを構築しています。
すべての開発は ClojureScript で行われますが、ビルド アーティファクトは NPM パッケージです。例:
(ns com.example.answer)
(defn answer [] 42)
ビルド... リリース... その後
const answer = require('answer');
answer(); //=> 42
注意: 私は最近、ビルド セットアップの詳細をこの投稿に投稿しました。
私の開発環境全体は Docker コンテナー内にあり、「Visual Studio Code Remote - Container」拡張機能を使用しています。
- ClojureScript v1.10
- Node.js v12
- シャドウ cljs v2.8.55
- Visual Studio Code Calva拡張機能 ( VS Code リモート コンテナーで実行)
問題"
私のビルド セットアップは正常に動作します (少なくとも私はそう思います!) が、より迅速な開発フィードバック サイクルを実装したいと考えています。
言い換えれば、数行の変更をテストするためだけに NPM パッケージ全体を再構築したくありません。
完璧な世界 別名「質問」
完璧な世界では、REPL を開いて、ClojureScript コードをいつでも評価できるようにする必要があります。
どのようにそこにたどり着こうとしても、同じ根本的な問題によってブロックされているようです。
REPL サーバーに接続しているアプリケーションはありません。コンパイル済みの ClojureScript コードが JS 環境に読み込まれていることを確認してください。
私が試したこと
のみ
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 Code Calvaを使用:
上記と同じ
shadow-cljs.edn
ファイルの場合:で名前空間を手動でロードしようとすると
Calva: Load current namespace in REPL window
、同じエラーが発生します。REPL サーバーに接続しているアプリケーションはありません。コンパイル済みの ClojureScript コードが JS 環境に読み込まれていることを確認してください。
質問:その完璧な世界にたどり着くにはどうすればよいですか?