mirror of
https://github.com/status-im/reagent.git
synced 2025-01-12 04:44:27 +00:00
b7304d0f3f
This removes the interop macros which used aget/aset and prevented Closure naming mangling, now normal property and method access is used where possible, and goog.object used when using variable keys. Further testing is needed to ensure this works correctly with Closure, as there are some properties that are used with goog.object in one place, and as property in another. Fixes #324
179 lines
7.0 KiB
Clojure
179 lines
7.0 KiB
Clojure
(defproject reagent "0.8.0"
|
|
:url "http://github.com/reagent-project/reagent"
|
|
:license {:name "MIT"}
|
|
:description "A simple ClojureScript interface to React"
|
|
|
|
:dependencies [[org.clojure/clojure "1.9.0"]
|
|
;; If :npm-deps enabled, these are used only for externs.
|
|
;; Without direct react dependency, other packages,
|
|
;; like react-leaflet might have closer dependency to a other version.
|
|
[cljsjs/react "16.3.0-1"]
|
|
[cljsjs/react-dom "16.3.0-1"]
|
|
[cljsjs/react-dom-server "16.3.0-1"]
|
|
[cljsjs/create-react-class "15.6.2-0"]]
|
|
|
|
:plugins [[lein-cljsbuild "1.1.7"]
|
|
[lein-doo "0.1.10"]
|
|
[lein-codox "0.10.3"]
|
|
[lein-figwheel "0.5.15"]]
|
|
|
|
:source-paths ["src"]
|
|
|
|
:codox {:language :clojurescript
|
|
:exclude clojure.string
|
|
:source-paths ["src"]}
|
|
|
|
:profiles {:dev {:dependencies [[org.clojure/clojurescript "1.10.238"]
|
|
[figwheel "0.5.15"]
|
|
[doo "0.1.10"]
|
|
[com.google.javascript/closure-compiler-unshaded "v20180319"]
|
|
[cljsjs/prop-types "15.6.0-0"]]
|
|
:source-paths ["demo" "test" "examples/todomvc/src" "examples/simple/src" "examples/geometry/src"]
|
|
:resource-paths ["site" "target/cljsbuild/client" "target/cljsbuild/client-npm"]}}
|
|
|
|
:clean-targets ^{:protect false} [:target-path :compile-path "out"]
|
|
|
|
:figwheel {:http-server-root "public" ;; assumes "resources"
|
|
:css-dirs ["site/public/css"]
|
|
:repl false
|
|
;; :npm-deps and :stable-names
|
|
:validate-config false}
|
|
|
|
;; No profiles and merging - just manual configuration for each build type.
|
|
;; For :optimization :none ClojureScript compiler will compile all
|
|
;; cljs files in source-paths. To ensure unncessary files
|
|
;; aren't compiled it would be better to not provide source-paths or
|
|
;; provide single file but currently this doesn't work for Cljsbuild.
|
|
;; In future :main alone should be enough to find entry file.
|
|
:cljsbuild
|
|
{:builds
|
|
{:client
|
|
{:source-paths ["demo"]
|
|
:watch-paths ["src" "demo" "test"]
|
|
:figwheel true
|
|
:compiler {:parallel-build true
|
|
:optimizations :none
|
|
:main "reagentdemo.dev"
|
|
:output-dir "target/cljsbuild/client/public/js/out"
|
|
:output-to "target/cljsbuild/client/public/js/main.js"
|
|
:asset-path "js/out"
|
|
:npm-deps false
|
|
:checked-arrays :warn}}
|
|
|
|
:client-npm
|
|
{:source-paths ["demo"]
|
|
:watch-paths ["src" "demo" "test"]
|
|
:figwheel true
|
|
:compiler {:parallel-build true
|
|
:optimizations :none
|
|
:main "reagentdemo.dev"
|
|
:output-dir "target/cljsbuild/client-npm/public/js/out"
|
|
:output-to "target/cljsbuild/client-npm/public/js/main.js"
|
|
:asset-path "js/out"
|
|
:checked-arrays :warn}}
|
|
|
|
:test
|
|
{:source-paths ["test"]
|
|
:compiler {:parallel-build true
|
|
:optimizations :none
|
|
:main "reagenttest.runtests"
|
|
:asset-path "js/out"
|
|
:output-dir "target/cljsbuild/test/out"
|
|
:output-to "target/cljsbuild/test/main.js"
|
|
:npm-deps false
|
|
:aot-cache true}}
|
|
|
|
:test-npm
|
|
{:source-paths ["test"]
|
|
:compiler {:parallel-build true
|
|
:optimizations :none
|
|
:main "reagenttest.runtests"
|
|
:asset-path "js/out"
|
|
:output-dir "target/cljsbuild/test-npm/out"
|
|
:output-to "target/cljsbuild/test-npm/main.js"
|
|
:aot-cache true}}
|
|
|
|
;; Separate source-path as this namespace uses Node built-in modules which
|
|
;; aren't available for other targets, and would break other builds.
|
|
:prerender
|
|
{:source-paths ["prerender"]
|
|
:compiler {:main "sitetools.prerender"
|
|
:target :nodejs
|
|
:output-dir "target/cljsbuild/prerender/out"
|
|
:output-to "target/cljsbuild/prerender/main.js"
|
|
:aot-cache true}}
|
|
|
|
:node-test
|
|
{:source-paths ["test/reagenttest/runtests.cljs"]
|
|
:watch-paths ["src" "test"]
|
|
:compiler {:main "reagenttest.runtests"
|
|
:target :nodejs
|
|
:parallel-build true
|
|
:optimizations :none
|
|
:output-dir "target/cljsbuild/node-test/out"
|
|
:output-to "target/cljsbuild/node-test/main.js"
|
|
:npm-deps false
|
|
:aot-cache true}}
|
|
|
|
:node-test-npm
|
|
{:source-paths ["test/reagenttest/runtests.cljs"]
|
|
:watch-paths ["src" "test"]
|
|
:compiler {:main "reagenttest.runtests"
|
|
:target :nodejs
|
|
:parallel-build true
|
|
:optimizations :none
|
|
:output-dir "target/cljsbuild/node-test-npm/out"
|
|
:output-to "target/cljsbuild/node-test-npm/main.js"
|
|
:aot-cache true}}
|
|
|
|
;; With :advanched source-paths doesn't matter that much as
|
|
;; Cljs compiler will only read :main file.
|
|
:prod
|
|
{:source-paths ["demo"]
|
|
:compiler {:main "reagentdemo.prod"
|
|
:optimizations :advanced
|
|
:elide-asserts true
|
|
:pretty-print false
|
|
;; :pseudo-names true
|
|
:stable-names true
|
|
:output-to "target/cljsbuild/prod/public/js/main.js"
|
|
:output-dir "target/cljsbuild/prod/out" ;; Outside of public, not published
|
|
:npm-deps false
|
|
:aot-cache true}}
|
|
|
|
:prod-npm
|
|
{:source-paths ["demo"]
|
|
:compiler {:main "reagentdemo.prod"
|
|
:optimizations :advanced
|
|
:elide-asserts true
|
|
:pretty-print false
|
|
:stable-names true
|
|
:output-to "target/cljsbuild/prod-npm/public/js/main.js"
|
|
:output-dir "target/cljsbuild/prod-npm/out" ;; Outside of public, not published
|
|
:closure-warnings {:global-this :off}
|
|
:aot-cache true}}
|
|
|
|
:prod-test
|
|
{:source-paths ["test"]
|
|
:compiler {:main "reagenttest.runtests"
|
|
:optimizations :advanced
|
|
:elide-asserts true
|
|
:pretty-print false
|
|
:output-to "target/cljsbuild/prod-test/main.js"
|
|
:output-dir "target/cljsbuild/prod-test/out"
|
|
:closure-warnings {:global-this :off}
|
|
:npm-deps false
|
|
:aot-cache true}}
|
|
|
|
:prod-test-npm
|
|
{:source-paths ["test"]
|
|
:compiler {:main "reagenttest.runtests"
|
|
:optimizations :advanced
|
|
:elide-asserts true
|
|
:pretty-print false
|
|
;; :pseudo-names true
|
|
:output-to "target/cljsbuild/prod-test-npm/main.js"
|
|
:output-dir "target/cljsbuild/prod-test-npm/out"
|
|
:closure-warnings {:global-this :off}
|
|
:aot-cache true}}}})
|