問題タブ [boot-clj]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
246 参照

clojure - clojure ブー​​トでタスクの実行順序が変わるのはなぜですか?

タスクで使用compすると、実行順序は左から右になります。無名関数で使用するcompと、実行順序は右から左になります。この矛盾はどのように合理的ですか?

0 投票する
1 に答える
286 参照

clojure - Boot clojure による自動化

できる限りチュートリアルに従おうとしていますが、私の人生では、ライブリロードが機能しないようです

私のディレクトリ構造は次のとおりです:-

私は次のbuild.bootを持っています

私のプロセス出力は問題ないようです

ws://localhost:9001 に接続するための adzerk/boot_reload/init653.cljs を書き込んでいます... boot_cljs_repl.cljs を書き込んでいます...

ファイル ウォッチャーを開始しています (終了するには CTRL-C)...

:require adzerk.boot-reload.init653 を main.cljs.edn に追加しています... ホスト 127.0.0.1 のポート 9000 で nREPL サーバーが起動しました - nrepl://127.0.0.1:9000 追加:require adzerk.boot-cljs-repl main.cljs.edn に... ClojureScript をコンパイルしています... ? js/main.js 2016-07-23 02:38:50.287:INFO::clojure-agent-send-off-pool-0: ログ初期化 @ 51878ms 2016-07-23 02:38:50.450:INFO:oejs.サーバー: clojure-agent-send-off-pool-0: jetty-9.2.10.v20150310 2016-07-23 02:38:50.501:INFO:oejs.ServerConnector: clojure-agent-send-off-pool-0: ServerConnector@4451c4ae{HTTP/1.1}{0.0.0.0:3000} を開始しました 2016-07-23 02:38:50.506:INFO:oejs.Server:clojure-agent-send-off-pool-0: @52097ms を開始しました Jetty を開始しましたhttp://localhost:3000でターゲット ディレクトリを書き込んでいます... 経過時間: 33.710 秒

URL にアクセスします...すべてチェックアウトします。次に、.cljs ファイルと .html ファイルを更新しようとしましたが、何も.

私はそれを理解していません...これはどのように機能すると思われますか?私は何を間違っていますか?

0 投票する
1 に答える
696 参照

clojure - boot-clj プロジェクトで resources/public ディレクトリを使用する

サブディレクトリ public を保持するリソース ディレクトリを使用するブート プロジェクトをセットアップしようとしています。後者には、たとえば、すべての Web 関連コンテンツ、コンパイルされた clojurescript などを含める必要があります。

これは、公開することを意図していないリソースを保持したい場合に適しています。

追加の public ディレクトリなしで実行すると、完全に機能します。追加のサブディレクトリを使用しようとすると、エラーが発生します。関連する構成は次のとおりです。

build.boot で:

resources ディレクトリ内から:

一方、main.cljs.edn は次のようになります。

呼び出し時boot devに次のことが発生します: プロセスが手動で強制終了されるまで、ClojureScript はエラーでコンパイルを続けます。一部の相対パスに関連する再帰エラーのようです。

一方、長く実行し続けると、public/public/public/..展開します。

これを修正できる提案はありますか?


アップデート

質問の更新版は次のとおりです。

次のリソース フォルダーの構造を考えてみましょう。

そして、build.boot の次の部分:

'myapp.server/handler は、resources/public からファイルを提供するだけであることを認識しています (wrap-resourceまたは同等の構成要素によって実装されていresourcesます。後者はデフォルトで "private" に設定されています。

しかし、問題はさらに早い段階で発生します。リソースディレクトリ全体を実行すると、もちろんboot devターゲットディレクトリに再現されます。private_file.txt(これは意図された動作ですか? ファイルが非常に大きくなる可能性があり、ディスク容量の 2 倍を消費する可能性があることを意味します)

この時点で、 main 内の :asset-path がこれにどのように影響するかはわかりません。ここの例では、「js/main.out」のままにしていますが、これは間違っている可能性があります。

0 投票する
1 に答える
177 参照

emacs - cider-jack-in の後に起動タスクを開始する

cider-jack-in 経由でブート プロジェクトを開始した後、特定のブート タスクを開始するにはどうすればよいですか?

repl(dir boot.user)では、 で定義されたタスクが明らかになりbuild.bootます。ただし、eg で呼び出し(dev)ても効果はなく、少なくともそのタスクで定義されたリング サーバーには接続できません。boot devコマンドラインから使用すると機能します。cider-jack-in に切り替える必要がある理由は、shell/cider-connect アプローチでは、デフォルト シェル (すべてのコンパイル メッセージ)。

0 投票する
0 に答える
82 参照

emacs - cider-connect内のブートリフレッシュ

で推奨される手順に従った後、

https://github.com/samestep/boot-refresh

ブート プロジェクト内から cider-jack-in を使用すると、意図したホット リロード動作が機能します。

ただし、次のシナリオでは機能しません。このブート タスクを検討してください。

関連部分は:nreplキーワードです。

このタスクが起動された後、ポート 4000 で nrepl サーバーに接続できます。これには、開発中にアプリケーションの実際の状態にアクセスできるという利点があります。(詳細については、この投稿を参照してください

これは、 を介して行うことができますcider-connect。ただし、ホットリロードはなくなりました。この:reload trueオプションは、ここで混乱する可能性があります。これは、http 要求が完了したときにのみソースのリロードをトリガーします。しかし、ブートリフレッシュのより一般的なアプローチを探しています。


注: ここでの意図は、サーバー側でライブ リロード動作を行うことです。これは、クライアント側で知られている概念 (figwheel または boot-reload) に似ています。

0 投票する
2 に答える
259 参照

clojure - boot-clj: ファイルセットから特定のフォルダーのみを抽出するタスク + 名前を変更する

リソース フォルダーを持つ Clojure プロジェクトを考えてみましょう。このフォルダーには、いくつかのファイルと、いくつかの Web コンテンツを保持する "public" という別のフォルダーが含まれています。

ClojureScript をコンパイルし、パブリック ディレクトリだけをグローバル ファイルシステムの別のディレクトリに移動するブート タスクを探しています。最後に、フォルダーの名前を「project- version」に変更する必要があります。

以下はmove-files、ディレクトリではなくファイルに対してのみ機能するため、機能しません。しかし、私はそれがアイデアを明確にしていると思います:

/some/path/web_dirs/My-0.1.0この後、プロジェクトのすべてのパブリック ファイルのコンパイル済みバージョンを含むフォルダーが存在するはずです。