Skip to content

Instantly share code, notes, and snippets.

@brunokim
Created May 16, 2016 02:42
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save brunokim/8356657f4d6f175f02faad7ffeef5308 to your computer and use it in GitHub Desktop.
Save brunokim/8356657f4d6f175f02faad7ffeef5308 to your computer and use it in GitHub Desktop.
Failing cljsbuild project
;; project.clj
(defproject mwe "0.0.1"
:dependencies [[org.clojure/clojure "1.7.0"]
[org.clojure/clojurescript "1.8.51"]
[compojure "1.4.0"]
[ring "1.1.6"]
[ring/ring-defaults "0.1.5"]]
:source-paths ["src/clj" "src/cljs"]
:plugins [[lein-ring "0.9.7"]
[lein-cljsbuild "1.1.3"]]
:ring {:handler mwe.handler/app}
:hooks [leiningen.cljsbuild]
:profiles
{:dev {:dependencies [[javax.servlet/servlet-api "2.5"]
[ring/ring-mock "0.3.0"]
[alembic "0.3.2"]]}}
:cljsbuild
{:builds [{:source-paths ["src/cljs"]
:compiler {:output-to "resources/public/core.js"
:optimizations :simple}}]})
;;; src/clj/mwe/handler.clj
(ns mwe.handler
(:require [compojure.core :refer :all]
[compojure.route :as route]
[ring.adapter.jetty :refer [run-jetty]]
[ring.middleware.defaults :refer [wrap-defaults site-defaults]]))
(defroutes app-routes
(GET "/" [] "
<html>
<head>
<script src=\"core.js\"></script>
</head>
<body>
<p>Hello World from Clojure</p>
</body>
</html>")
(route/resources "/")
(route/not-found "Not Found"))
(def app
(wrap-defaults app-routes site-defaults))
;; src/cljs/mwe/core.cljs
(ns mwe.core)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; $ lein cljsbuild once
;; $ ls resources/public
;; core.js
;; $ cat resources/public/core.js
;; goog.addDependency("base.js", ['goog'], []);
;; goog.addDependency("../cljs/core.js", ['cljs.core'], ['goog.string', 'goog.object', 'goog.string.StringBuffer', 'goog.array']);
;; goog.addDependency("../mwe/core.js", ['mwe.core'], ['cljs.core']);
;; $
;; $ ls target/cljsbuild-compiler-0
;; cljs goog mwe
(let [p (js/document.CreateElement "p")]
(set! (. p -innerHTML) "Hello world from Clojurescript")
(.appendChild js/document.body p))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment