File tree Expand file tree Collapse file tree 4 files changed +81
-5
lines changed Expand file tree Collapse file tree 4 files changed +81
-5
lines changed Original file line number Diff line number Diff line change
1
+ (ns user
2
+ (:import [org.slf4j.simple SimpleLogger]))
3
+
4
+ (System/setProperty SimpleLogger/DEFAULT_LOG_LEVEL_KEY " warn" )
5
+
6
+ (defonce *server (atom nil ))
7
+
8
+ (require '[url-shortener.main :as main])
9
+
10
+ (defn start-server []
11
+ (reset! *server (main/start-server {:port 8000 :join? false })))
12
+
13
+ (defn stop-server []
14
+ (when @*server
15
+ (main/stop-server @*server)
16
+ (reset! *server nil )))
Original file line number Diff line number Diff line change 2
2
:description " URL shortener app"
3
3
4
4
:source-paths [" src" " resources" ]
5
+ :resource-paths [" resources" ]
5
6
6
- :dependencies [; ; Backend
7
+ :dependencies [
8
+ ; ; Backend
7
9
[org.clojure/clojure " 1.11.1" ]
8
10
[ring/ring-jetty-adapter " 1.11.0" ]
9
11
[ring/ring-json " 0.5.1" ]
10
12
[compojure " 1.7.1" ]
13
+ [org.slf4j/slf4j-simple " 2.0.10" ]
11
14
12
15
; ; Frontend
13
16
[reagent " 1.2.0" ]
23
26
24
27
:uberjar-name " url-shortener.jar"
25
28
26
- :resource-paths [" resources" ]
29
+ :profiles {:dev {:source-paths [" dev" ]
30
+ :dependencies [[ring/ring-devel " 1.11.0" ]]}
31
+
32
+ :repl {:repl-options {:init-ns user}}
27
33
28
- :profiles {:dev {:dependencies [[ring/ring-devel " 1.11.0" ]]}
29
34
:uberjar {:aot :all }})
Original file line number Diff line number Diff line change
1
+ # URL Shortener
2
+
3
+ ## Установка зависимостей
4
+
5
+ ``` bash
6
+ lein deps with-profile cljs
7
+ npm install
8
+ ```
9
+
10
+ ## Универсальный запуск из командной строки
11
+
12
+ ### Сборка клиентской части
13
+
14
+ ``` bash
15
+ npx shadow-cljs compile app
16
+ ```
17
+
18
+ ### Запуск в режиме разработки (REPL)
19
+
20
+ ``` bash
21
+ lein repl
22
+ ```
23
+
24
+ Теперь можно запустить веб-сервер следующими образом
25
+
26
+ ``` clojure
27
+ user=> (start-server )
28
+ Server started on port: 8000
29
+ #object[org.eclipse.jetty.server.Server ..." ]
30
+ ```
31
+
32
+ Или остановить
33
+
34
+ ```clojure
35
+ user=> (stop-server)
36
+ Server stopped
37
+ nil
38
+ ```
39
+
40
+ ## Запуск через Jack-in: VSCode + Calva
41
+
42
+ 1. Запускаем Jack-in через Command Palette.
43
+ 2. Выбираем project type: `shadow-cljs`.
44
+ 3. Выбираем build to compile: `app`.
45
+ 4. Выбираем build to connect: `app`.
46
+ В этот момент в `output.calva-repl` будет выводиться
47
+
48
+ ```text
49
+ ; Waiting for Shadow CLJS runtimes, start your CLJS app...`
50
+ ```
51
+
52
+ 5. Запускаем сервер с помощью `(user/start-server)`.
53
+ 6. Открываем в браузере `localhost:8000` — это и есть наш CLJS runtime.
54
+
55
+ После этого мы должны подключиться к CLJS реплу.
Original file line number Diff line number Diff line change 9
9
([] (start-server {}))
10
10
([opts]
11
11
(let [server (jetty/run-jetty #'web/handler opts)]
12
- (println " Server started. " )
12
+ (println " Server started on port: " ( :port opts 80 ) )
13
13
server)))
14
14
15
15
(defn stop-server [server]
16
16
(.stop ^Server server)
17
- (println " Server stopped. " ))
17
+ (println " Server stopped" ))
18
18
19
19
(defn -main [& _]
20
20
(let [server (start-server )]
You can’t perform that action at this time.
0 commit comments