3

私はしばらくの間、clojure と clojurescript をいじくり回してきましたが、ブラウザーの repl が非常に応答しないことにいつも気付きました。通常、結果を返さずにハングアップするか、壊れたパイプの例外をスローします。今、私はそれが常に機能することを拒否する状況にあります。

modern-cljs チュートリアル パート 2 をダウンロードして、ページを開始し、コンパイル済みの JavaScript をロードして、bRepl を開始するすべての手順を実行するとします。(+ 3 4) のような単純なものを評価しようとすると、うまくいきません。

私は OSX 10.8.4 を使用しており、私の leiningen バージョンは Java 1.6.0_51 Java HotSpot(TM) 64-Bit Server VM の 2.3.2 です。どんな助けでも大歓迎です。

4

5 に答える 5

3

modern-cljs リポジトリのクローンを作成し、tutorial-02 ブランチをチェックアウトしてから、クリーンアップして再コンパイルすることをお勧めします。

git clone https://github.com/magomimmo/modern-cljs.git
cd modern-cljs
git checkout tutorial-02
lein do clean, cljsbuild clean
lein cljsbuild once

http サーバーが実行されていることを確認し (ポートは 3000 であると想定しています)、そのルートを modern-cljs/resources/public ディレクトリに設定してから、次のように repl-listen サブタスクを実行します。

lein trampoline cljsbuild repl-listen

cljs プロンプトを待ちます。次に、localhost:3000/simple.htmlURL にアクセスし、brepl との接続の準備が整うまで待ちます。

cljs プロンプトで、cljs 式を評価できるようになります。最後に、上記の URL をリロードします。

それでも機能しない場合は、Maven リポジトリを削除してみてください。

rm -rf ~/.m2/repository

lein do一連のコマンドからすべてをやり直します。

最終的には、https://github.com/magomimmo/modern-cljs/blob/master/doc/tutorial-18.md#the-need-of-a-more-comfortable-brepl-experienceチュートリアルに従ってセットアップできますhttps://github.com/cemerick/piggiebackを使用するより快適な bREPL

ハイ

于 2013-10-10T15:58:02.157 に答える
2

私もこのトピックでいくつかの問題を抱えていました。そして、ここに私を助けるトリックがあります:

  1. きれいな deps:rm -rf ~/.m2/*
  2. lein deps をダウンロード:lein depsプロジェクトのルートに
  3. 次のメッセージが表示されました:"broken pipe"前回の brepl インタラクションから時間がかかりすぎたとき。それで、ブラウザを更新してください、それだけです
  4. 初めてコードを評価しようとしたときに brepl がハングアップすることがありました。もう一度ブラウザを更新してみてください。
  5. 実行することを忘れないでください: lein cljsbuild oncebrepl を開始する前に

幸運を

PS: とにかく、brepl を快適に使いたい場合は、 https://github.com/cemerick/austinをご覧ください。私はこの brepl をテストし、正常に動作しますhttps://github.com/juanantonioruz/client

于 2013-10-18T09:41:15.607 に答える
1

Chromium を安全でない方法で使用してみてください。

  • OS X:

    open -a Chromium --args --disable-web-security

  • Linux:

    chromium --disable-web-security

次に、安全でないブラウザでページにアクセスし、brepl に接続してみてください。


説明:

whilebreplはポート 9000 で実行されているため、ページをホストする Web サーバーは必然的にXSSを構成する別のポートを使用します ([このスタック オーバーフローの議論] を参照)。

これを回避する最も簡単な方法は、デバッグに Chromium を安全でない方法で使用することですが、必要に応じて他の方法で XSS を有効にすることもできます。

于 2014-06-02T02:01:32.953 に答える
0

project.clj でどの ClojureScript リリースを指定していますか? 特定のリリースを指定していない場合、これが問題の原因である可能性があります。0.0-1913 が最新のものです。

于 2013-10-06T01:42:55.050 に答える
0

repl/connectまた、ブラウザ内から呼び出すのを忘れると、REPL が完全にハングすることも確認しました。出力がないため、診断が困難です。より侵入的な救済策を試す前に、確認する価値があります。

于 2014-01-02T14:26:23.137 に答える