Obecnie mam problemy z użyciem trybu szpikulca w Emacsie.
Pobrałem i zainstalowałem tryb szpikulca za pośrednictwem MELPA, więc wszystkie zależności powinny być na miejscu.
Do celów testowych nawet pobrałem boidsjs
wersję demo .
Otworzę boids.js
, napiszę M-xrun-skewer
(otwiera przeglądarkę z adresem URL http://127.0.0.1:8080/skewer/demo
), a następnie w końcu uruchomię M-xskewer-mode
(-> włączony tryb szpikulca).
Ale w przeglądarce nic się nie dzieje.
Co ja robię źle?
package
skewer-mode
javascript
JacksGT
źródło
źródło
boids.js
bufora?C-x C-k
nie działa wskewer-html-mode
Odpowiedzi:
TLDR; Musisz uruchomić serwer http ( simple-http ) i załadować przez niego swoje pliki HTML.
Załóżmy na przykład, że masz plik HTML o nazwie
hello.html
i plik skryptu JS o nazwiescript.js
w/home/user/Documents/javascript
folderze.hello.html :
skrypt.js :
init.el (lub .emacs ):
Czas uruchomić serwer: M-x
httpd-start
i otworzyćindex.html
plik w przeglądarce, odwiedzając stronęhttp://localhost:8080/hello.html
. Powinieneś dostać alert w przeglądarce i teraz zadzwonićskwer-repl
.Możesz dalej wchodzić w interakcje z przeglądarką za pośrednictwem repliki. Wszystko, co oceniasz w replice, zostanie przesłane do przeglądarki. Na przykład, jeśli wpiszesz
console.log('hey!')
odpowiedź, otrzymasz tę wiadomość w konsoli przeglądarki.Jeśli chcesz interaktywnie modyfikować HTML (np. Tagi HTML na żywo z emacsa), dodaj do pliku init.el (lub .emacs ):
Teraz, gdy jesteś w pliku .html , możesz oceniać tagi za pomocą C-M-x(
skewer-html-eval-tag
), które zostaną natychmiast zaktualizowane w przeglądarce.Pamiętaj, że odwrotnie, dotyczy to również plików CSS i CSS.
źródło
httpd-root
w swojej konfiguracji, możesz uruchomićM-x eval-expression
(setq httpd-root "/path/to/files")
w dowolnym momencie z poziomu emacsa.<script src="http://localhost:8080/skewer"></script>\
(nie można edytować - edycja musi zawierać> = 6 znaków)Zamiast uruchamiać wersję demo, po prostu wykonaj te minimalne kroki, aby upewnić się, że wszystko działa poprawnie.
run-skewer
(otwiera się przeglądarka, wróć do myskewer.js)alert("hello");
i naciśnij C-xC-ena końcu tego wierszaPowinieneś zobaczyć pole ostrzeżenia na stronie.
źródło
C-x C-e
to rzeczywiste klawisze do wciśnięcia. zedytuje moją odpowiedź~/public_html
a następnie postępuj zgodnie z instrukcjami dla „Wersji ręcznej” pod tym linkiem. Gdy to zrobisz, odwiedź localhost: 8080 w przeglądarce.W przypadku, gdy port 8080 jest już w użyciu :
możesz skonfigurować skewer / simple-httpd, aby używał innego portu, dostosowując
httpd-port
zmienną. (M-x customize-variable<ret>httpd-port
)źródło