6

環境

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」拡張機能を使用しています。

問題"

私のビルド セットアップは正常に動作します (少なくとも私はそう思います!) が、より迅速な開発フィードバック サイクルを実装したいと考えています。
言い換えれば、数行の変更をテストするためだけに NPM パッケージ全体を再構築したくありません。

完璧な世界 別名「質問」

完璧な世界では、REPL を開いて、ClojureScript コードをいつでも評価できるようにする必要があります。

どのようにそこにたどり着こうとしても、同じ根本的な問題によってブロックされているようです。

REPL サーバーに接続しているアプリケーションはありません。コンパイル済みの ClojureScript コードが JS 環境に読み込まれていることを確認してください。

私が試したこと

  1. のみ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.
    
  2. VS Code Calvaを使用:

    上記と同じshadow-cljs.ednファイルの場合:

    ここに画像の説明を入力

    で名前空間を手動でロードしようとするとCalva: Load current namespace in REPL window、同じエラーが発生します。

    REPL サーバーに接続しているアプリケーションはありません。コンパイル済みの ClojureScript コードが JS 環境に読み込まれていることを確認してください。

質問:その完璧な世界にたどり着くにはどうすればよいですか?

4

2 に答える 2