Skip to content

Instantly share code, notes, and snippets.

@gtrak
Created August 15, 2017 14: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 gtrak/9e39720b957c5240b02b45391c402d54 to your computer and use it in GitHub Desktop.
Save gtrak/9e39720b957c5240b02b45391c402d54 to your computer and use it in GitHub Desktop.
gary@gary-macbook:~/dev$ lein new expo expotest
Retrieving expo/lein-template/0.17.1/lein-template-0.17.1.pom from clojars
Retrieving expo/lein-template/0.17.1/lein-template-0.17.1.jar from clojars
Generating fresh Expo project.
README.md contains instructions to get you started.
If you have any questions, you can ask us on Expo slack #clojurescript channel. https://slack.expo.io/
gary@gary-macbook:~/dev$ cd expotest/
gary@gary-macbook:~/dev/expotest$ cat project.clj
(defproject expotest "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.9.0-alpha16"]
[org.clojure/clojurescript "1.9.542"]
[org.clojure/core.async "0.3.442"]
[reagent "0.6.1" :exclusions [cljsjs/react cljsjs/react-dom cljsjs/react-dom-server]]
[re-frame "0.9.3"]
[react-native-externs "0.0.2-SNAPSHOT"]]
:plugins [[lein-cljsbuild "1.1.4"]
[lein-figwheel "0.5.10"]]
:clean-targets ["target/" "main.js"]
:aliases {"figwheel" ["run" "-m" "user" "--figwheel"]
"externs" ["do" "clean"
["run" "-m" "externs"]]
"rebuild-modules" ["run" "-m" "user" "--rebuild-modules"]
"prod-build" ^{:doc "Recompile code with prod profile."}
["externs"
["with-profile" "prod" "cljsbuild" "once" "main"]]}
:profiles {:dev {:dependencies [[figwheel-sidecar "0.5.10"]
[com.cemerick/piggieback "0.2.1"]]
:source-paths ["src" "env/dev"]
:cljsbuild {:builds [{:id "main"
:source-paths ["src" "env/dev"]
:figwheel true
:compiler {:output-to "target/not-used.js"
:main "env.main"
:output-dir "target"
:optimizations :none}}]}
:repl-options {:nrepl-middleware [cemerick.piggieback/wrap-cljs-repl]}}
:prod {:cljsbuild {:builds [{:id "main"
:source-paths ["src" "env/prod"]
:compiler {:output-to "main.js"
:main "env.main"
:output-dir "target"
:static-fns true
:externs ["js/externs.js"]
:parallel-build true
:optimize-constants true
:optimizations :advanced
:closure-defines {"goog.DEBUG" false}}}]}}})
gary@gary-macbook:~/dev/expotest$ cat build.boot
(set-env!
:source-paths #{"src" "env/dev"}
:dependencies '[[ajchemist/boot-figwheel "0.5.4-6" :scope "test"] ;; latest release
[org.clojure/tools.nrepl "0.2.12" :scope "test"]
[com.cemerick/piggieback "0.2.1" :scope "test"]
[figwheel-sidecar "0.5.4-7" :scope "test"]
[react-native-externs "0.0.2-SNAPSHOT" :scope "test"]
[org.clojure/clojure "1.9.0-alpha16"]
[org.clojure/clojurescript "1.9.542"]
[org.clojure/core.async "0.3.442"]
[reagent "0.6.1" :exclusions [cljsjs/react cljsjs/react-dom cljsjs/react-dom-server]]
[re-frame "0.9.3"]])
(require
'[boot-figwheel :refer [figwheel cljs-repl]]
'[cljs.build.api :as b]
'[user :as user]
'[externs :as externs])
(require 'boot.repl)
(swap! boot.repl/*default-middleware*
conj 'cemerick.piggieback/wrap-cljs-repl)
(deftask dev
"boot dev, then input (cljs-repl)"
[]
(user/prepare)
(comp
(figwheel
:build-ids ["main"]
:all-builds [{:id "main"
:source-paths ["src" "env/dev"]
:figwheel true
:compiler {:output-to "not-used.js"
:main "env.main"
:optimizations :none
:output-dir "."}}]
:figwheel-options {:open-file-command "emacsclient"
:validate-config false})
(repl)))
(deftask prod
[]
(externs/-main)
(println "Start to compile clojurescript ...")
(let [start (System/nanoTime)]
(b/build ["src" "env/prod"]
{:output-to "main.js"
:main "env.main"
:output-dir "target"
:static-fns true
:externs ["js/externs.js"]
:parallel-build true
:optimize-constants true
:optimizations :advanced
:closure-defines {"goog.DEBUG" false}})
(println "... done. Elapsed" (/ (- (System/nanoTime) start) 1e9) "seconds")))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment