I have a project setup where I want to serve my clojurescript from my clojure server and I want to keep all in one repo, if possible. The server works and returns the static resources including reagent files. However, when the app.js is processed, I get the following console ouput:
core.cljs?rel=1589815066414:6  undefined
core.cljs?rel=1589815066414:8  Uncaught TypeError: Cannot read property 'call' of undefined
    at core.cljs?rel=1589815066414:8
(anonymous) @ core.cljs?rel=1589815066414:8
To my eyes everything in my code looks the way it should be.
This is my core.cljs:
(ns ws-poc.core
  (:require
   [reagent.core :as reagent]))
(.log js/console reagent) ;; <== reagent is undefined, see first line of log
(reagent/render-component
 [:h1 Works!]
 (. js/document (getElementById "app")))
This is my index.html
<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <!-- <link href="css/style.css" rel="stylesheet" type="text/css"> -->
  </head>
  <body>
    <div id="app">
      <h2>Works!</h2>
    </div>
    <script src="js/compiled/app.js" type="text/javascript"></script>
  </body>
</html>
This is my project structure:
.
├── project.clj
├── resources
│   └── public
│       ├── css
│       ├── index.html
│       └── js
│           └── compiled
│               ├── app.js
│               └── out
│                   ├── cljs
│                   ├── cljs_deps.js
│                   ├── cljsc_opts.edn
│                   ├── cljsjs
│                   ├── clojure
│                   ├── figwheel
│                   ├── goog
│                   ├── process
│                   ├── reagent
│                   └── ws_poc
├── src
    └── ws_poc
        ├── core.cljs
        └── server
           └── core.clj
And finally my project.clj:
(defproject ws-poc "0.1.0-SNAPSHOT"
      :description "FIXME: write description"
      :url "http://example.com/FIXME"
      :license {:name "Eclipse Public License"
                :url "http://www.eclipse.org/legal/epl-v10.html"}
      :dependencies [[org.clojure/clojure "1.8.0"]
                     [org.clojure/clojurescript "1.10.764"]
                     [environ "1.2.0"]
                     [reagent "1.0.0-alpha1"]]
      :plugins [[lein-figwheel "0.5.19"]
                [lein-cljsbuild "1.1.8"]
                [lein-environ "1.2.0"]]
      :source-paths ["src"]
      :clean-targets ^{:protect false} ["resources/public/js/compiled" "target"]
      :main ^:skip-aot ws-poc.server.core
      ; :target-path "target/%s"
      :profiles {:dev {:env {:dev? "true"}
                       :cljsbuild {:builds
                                   [{:id "dev"
                                     :source-paths ["src"]
                                     :figwheel {}
                                     :compiler {:main ws-poc.core
                                                :asset-path "js/compiled/out"
                                                :output-to "resources/public/js/compiled/app.js"
                                                :output-dir "resources/public/js/compiled/out"
                                                :source-map-timestamp true}}]}}}
      :figwheel {:css-dirs ["resources/public/css"]})