ClojureScript bRepl изобщо не отговаря

От известно време се занимавам с clojure и clojurescript и винаги намирам, че repl на браузъра е изключително неотзивчив. Обикновено се задържа, без да дава резултат, или хвърля изключение за счупена тръба. Сега съм в ситуация, в която винаги отказва да работи.

Да кажем, че изтегля част 2 от урока modern-cljs и правя всички стъпки, за да стартирам страницата, да заредя компилирания javascript и да стартирам bRepl. Когато се опитам да оценя нещо толкова просто като (+ 3 4) добре, това просто не работи.

Аз съм на OSX 10.8.4 и моята leiningen версия е 2.3.2 на Java 1.6.0_51 Java HotSpot(TM) 64-Bit Server VM. Всяка помощ е изключително ценена.


person Frankie    schedule 03.10.2013    source източник
comment
Обичайното решение за това е да опресните страницата след като стартирате cljs repl. От въпроса ви не става ясно дали следвате тази стъпка, можете ли да потвърдите?   -  person georgek    schedule 03.10.2013
comment
Пробвах и това, но не става. Чудя се дали има някакви зависимости за почистване/опресняване за leiningen или свързани инструменти?   -  person Frankie    schedule 04.10.2013
comment
Опитайте да отворите страницата, към която се опитвате да се свържете, в друг раздел или браузър.   -  person michieljoris    schedule 02.02.2014


Отговори (5)


И аз имах няколко проблема с тази тема. И ето триковете, които ми помагат:

  1. Почистване на отводнители: rm -rf ~/.m2/*
  2. изтеглете lein deps: lein deps в корена на вашия проект
  3. Видях това съобщение: "broken pipe" когато имаше твърде много време от последното brepl взаимодействие. Така че, опреснете браузъра и това е всичко
  4. понякога моят brepl увисна първия път, когато се опитвах да оценя кода, опитайте отново да опресните браузъра
  5. не забравяйте да стартирате: lein cljsbuild once преди да стартирате brepl

Късмет

PS: Както и да е, ако искате да имате удобно brepl изживяване, трябва да погледнете https://github.com/cemerick/austin . Тествах този brepl и работи добре https://github.com/juanantonioruz/client

person tangrammer    schedule 18.10.2013
comment
В крайна сметка използвах Austin като brepl по подразбиране. Понякога все още получавам изключение Broken Pipe и опресняването на страницата не помага. Така че просто рестартирам repl и след това работи добре. - person Frankie; 19.10.2013

Бих предложил да клонирате modern-cljs repo, след това да проверите клона 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.html URL и изчакайте връзката с 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-опит урок за настройка на по-удобен bREPL, който използва https://github.com/cemerick/piggieback

ЗДРАВЕЙ Х

person Magomimmo    schedule 10.10.2013

Трябва да опитате да използвате Chromium небезопасно:

  • OS X:

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

  • Linux:

    chromium --disable-web-security

След това посетете страницата си в опасния браузър и опитайте да се свържете с brepl.


Обяснение:

Тъй като докато brepl работи на порт 9000, уеб сървърът, хостващ страницата, непременно използва различен порт, който представлява XSS (вижте [тази дискусия за препълване на стека]).

Най-лесният начин да заобиколите това е да използвате небезопасно Chromium за отстраняване на грешки, но можете да активирате XSS с други средства, ако желаете.

person Matt W-D    schedule 02.06.2014

Кое издание на ClojureScript посочвате във вашия project.clj? Ако не посочвате конкретна версия, това вероятно е източникът на вашите проблеми. 0.0-1913 е най-новият.

person dnolen    schedule 06.10.2013

Също така съм виждал пълно увисване в REPL, когато забравя да извикам repl/connect от браузъра. Тъй като няма изход, е трудно да се диагностицира. Струва си да проверите, преди да опитате по-натрапчиви средства за защита.

person DavidM    schedule 02.01.2014