-
Notifications
You must be signed in to change notification settings - Fork 31
Description
Whenever I include this project, and do an advanced compile, the compilation includes two copies of React and ReactDOM leading to this error in the console:
Invariant Violation: addComponentAsRefTo(...): Only a ReactOwner can have refs. You might be adding a ref to a component that was not created inside a component's render method, or you have multiple copies of React loaded (details: https://fb.me/react-refs-must-have-owner).
cleaning the deps tree of all other react and react-doms, then do an advanced compile (mine has :pretty-print true, :pseudo-names true), then look at the build artifact for react comment headers:
$ grep "^ [*] React" target/cljsbuild/public/js/app.js
- React v15.6.1
- ReactDOM v15.6.1
- React v15.6.1
- ReactDOM v15.6.1
And you can see there are two copies of both.
Has anyone else got this working on advanced compile, or is it something shitty about my project setup.
My deps at the moment are:
[
[clj-time "0.14.0"]
[cljs-ajax "0.7.2"]
[compojure "1.6.0"]
[cprop "0.1.11"]
[funcool/struct "1.1.0"]
[luminus-immutant "0.2.3"]
[luminus-nrepl "0.1.4"]
[luminus/ring-ttl-session "0.3.2"]
[markdown-clj "1.0.1"]
[metosin/muuntaja "0.3.2"]
[metosin/ring-http-response "0.9.0"]
[mount "0.1.11"]
[org.clojure/clojure "1.8.0"]
[org.clojure/clojurescript "1.9.908" :scope "provided"]
[org.clojure/tools.cli "0.3.5"]
[org.clojure/tools.logging "0.4.0"]
[org.webjars.bower/tether "1.4.0"]
[org.webjars/bootstrap "4.0.0-alpha.5"]
[org.webjars/font-awesome "4.7.0"]
[reagent "0.7.0" :exclusions [cljsjs/react-dom-server cljsjs/react-dom cljsjs/react]]
[reagent-utils "0.2.1"]
[ring-webjars "0.2.0"]
[ring/ring-core "1.6.2"]
[ring/ring-defaults "0.3.1"]
[secretary "1.2.3"]
[selmer "1.11.1"]
[cljs-react-material-ui "0.2.48" :exclusions
[org.clojure/clojure]]
[cljsjs/material-ui-chip-input "0.17.2-0" :exclusions [cljsjs/react cljsjs/react-dom]]
[org.clojure/core.async "0.3.443"]
]
and lein deps :tree
gives:
[binaryage/devtools "0.9.4"]
[binaryage/env-config "0.2.0"]
[clj-time "0.14.0"]
[joda-time "2.9.7"]
[cljs-ajax "0.7.2"]
[cheshire "5.7.1"]
[com.fasterxml.jackson.core/jackson-core "2.8.6"]
[com.fasterxml.jackson.dataformat/jackson-dataformat-cbor "2.8.6"]
[com.fasterxml.jackson.dataformat/jackson-dataformat-smile "2.8.6"]
[tigris "0.1.1"]
[com.cognitect/transit-clj "0.8.300"]
[com.cognitect/transit-java "0.8.324"]
[org.msgpack/msgpack "0.6.12"]
[com.googlecode.json-simple/json-simple "1.1.1" :exclusions [[junit]]]
[org.javassist/javassist "3.18.1-GA"]
[com.cognitect/transit-cljs "0.8.239"]
[com.cognitect/transit-js "0.8.846"]
[net.colourcoding/poppea "0.2.1"]
[org.apache.httpcomponents/httpasyncclient "4.1.3"]
[commons-logging "1.2"]
[org.apache.httpcomponents/httpclient "4.5.3"]
[org.apache.httpcomponents/httpcore-nio "4.4.6"]
[org.apache.httpcomponents/httpcore "4.4.6"]
[cljs-react-material-ui "0.2.48" :exclusions [[org.clojure/clojure]]]
[cljsjs/material-ui "0.19.0-0"]
[cljsjs/react-dom "15.6.1-1"]
[cljsjs/react "15.6.1-1"]
[sablono "0.8.0"]
[cljsjs/material-ui-chip-input "0.17.2-0" :exclusions [[cljsjs/react] [cljsjs/react-dom]]]
[clojure-complete "0.2.4" :exclusions [[org.clojure/clojure]]]
[com.cemerick/piggieback "0.2.2"]
[compojure "1.6.0"]
[clout "2.1.2"]
[instaparse "1.4.0" :exclusions [[org.clojure/clojure]]]
[medley "1.0.0"]
[org.clojure/tools.macro "0.1.5"]
[ring/ring-codec "1.0.1"]
[cprop "0.1.11"]
[doo "0.1.8"]
[karma-reporter "0.1.0"]
[figwheel-sidecar "0.5.14"]
[com.stuartsierra/component "0.3.2"]
[com.stuartsierra/dependency "0.2.0"]
[figwheel "0.5.14" :exclusions [[org.clojure/tools.reader]]]
[hawk "0.2.11" :exclusions [[org.clojure/clojure]]]
[net.incongru.watchservice/barbary-watchservice "1.0"]
[net.java.dev.jna/jna "3.2.2"]
[http-kit "2.2.0"]
[ring-cors "0.1.11" :exclusions [[ring/ring-core] [org.clojure/clojure]]]
[simple-lein-profile-merge "0.1.4"]
[strictly-specking-standalone "0.1.1"]
[net.cgrand/parsley "0.9.3" :exclusions [[org.clojure/clojure]]]
[net.cgrand/regex "1.1.0"]
[net.cgrand/sjacket "0.1.1" :exclusions [[org.clojure/clojure] [net.cgrand/parsley]]]
[suspendable "0.1.1" :exclusions [[org.clojure/clojure] [com.stuartsierra/component]]]
[funcool/struct "1.1.0"]
[funcool/cuerdas "2.0.3"]
[luminus-immutant "0.2.3"]
[org.immutant/web "2.1.6"]
[org.immutant/core "2.1.6"]
[org.projectodd.wunderboss/wunderboss-clojure "0.12.2"]
[org.projectodd.wunderboss/wunderboss-web-undertow "0.12.2"]
[io.undertow/undertow-core "1.3.23.Final"]
[org.jboss.xnio/xnio-api "3.3.6.Final"]
[org.jboss.xnio/xnio-nio "3.3.6.Final" :scope "runtime"]
[io.undertow/undertow-servlet "1.3.23.Final"]
[org.jboss.spec.javax.annotation/jboss-annotations-api_1.2_spec "1.0.0.Final"]
[io.undertow/undertow-websockets-jsr "1.3.23.Final"]
[org.projectodd.wunderboss/wunderboss-core "0.12.2"]
[ch.qos.logback/logback-classic "1.1.3"]
[ch.qos.logback/logback-core "1.1.3"]
[org.jboss.logging/jboss-logging "3.2.1.Final"]
[org.projectodd.wunderboss/wunderboss-web "0.12.2"]
[org.jboss.spec.javax.servlet/jboss-servlet-api_3.1_spec "1.0.0.Final"]
[org.jboss.spec.javax.websocket/jboss-websocket-api_1.1_spec "1.1.0.Final"]
[luminus-nrepl "0.1.4"]
[luminus/ring-ttl-session "0.3.2"]
[expiring-map "0.1.8"]
[net.jodah/expiringmap "0.5.8"]
[markdown-clj "1.0.1"]
[metosin/muuntaja "0.3.2"]
[metosin/ring-http-response "0.9.0"]
[potemkin "0.4.3"]
[clj-tuple "0.2.2"]
[riddley "0.1.12"]
[mount "0.1.11"]
[org.clojure/clojure "1.8.0"]
[org.clojure/clojurescript "1.9.908" :scope "provided"]
[com.google.javascript/closure-compiler-unshaded "v20170806" :scope "provided"]
[args4j "2.33" :scope "provided"]
[com.google.code.findbugs/jsr305 "3.0.1" :scope "provided"]
[com.google.code.gson/gson "2.7" :scope "provided"]
[com.google.errorprone/error_prone_annotations "2.0.18" :scope "provided"]
[com.google.guava/guava "20.0" :scope "provided"]
[com.google.javascript/closure-compiler-externs "v20170806" :scope "provided"]
[com.google.jsinterop/jsinterop-annotations "1.0.0" :scope "provided"]
[com.google.protobuf/protobuf-java "3.0.2" :scope "provided"]
[org.clojure/data.json "0.2.6"]
[org.clojure/google-closure-library "0.0-20170809-b9c14c6b" :scope "provided"]
[org.clojure/google-closure-library-third-party "0.0-20170809-b9c14c6b" :scope "provided"]
[org.clojure/tools.reader "1.0.5"]
[org.mozilla/rhino "1.7R5" :scope "provided"]
[org.clojure/core.async "0.3.443"]
[org.clojure/tools.analyzer.jvm "0.7.0"]
[org.clojure/core.memoize "0.5.9"]
[org.clojure/core.cache "0.6.5"]
[org.clojure/data.priority-map "0.0.7"]
[org.clojure/tools.analyzer "0.6.9"]
[org.ow2.asm/asm-all "4.2"]
[org.clojure/tools.cli "0.3.5"]
[org.clojure/tools.logging "0.4.0"]
[org.clojure/tools.nrepl "0.2.12" :exclusions [[org.clojure/clojure]]]
[org.webjars.bower/tether "1.4.0"]
[org.webjars/bootstrap "4.0.0-alpha.5"]
[org.webjars/jquery "1.11.1"]
[org.webjars/font-awesome "4.7.0"]
[pjstadig/humane-test-output "0.8.3"]
[prone "1.1.4"]
[reagent-utils "0.2.1"]
[reagent "0.7.0" :exclusions [[cljsjs/react-dom-server] [cljsjs/react-dom] [cljsjs/react]]]
[cljsjs/create-react-class "15.5.3-0"]
[ring-webjars "0.2.0"]
[org.webjars/webjars-locator "0.27"]
[com.fasterxml.jackson.core/jackson-databind "2.3.3"]
[com.fasterxml.jackson.core/jackson-annotations "2.3.0"]
[org.apache.commons/commons-lang3 "3.4"]
[org.webjars/webjars-locator-core "0.27"]
[org.apache.commons/commons-compress "1.9"]
[org.slf4j/slf4j-api "1.7.7"]
[ring/ring-core "1.6.2"]
[commons-fileupload "1.3.2"]
[commons-io "2.5"]
[crypto-equality "1.0.0"]
[crypto-random "1.2.0"]
[ring/ring-defaults "0.3.1"]
[javax.servlet/javax.servlet-api "3.1.0"]
[ring/ring-anti-forgery "1.1.0"]
[ring/ring-headers "0.3.0"]
[ring/ring-ssl "0.3.0"]
[ring/ring-devel "1.6.2"]
[clj-stacktrace "0.2.8"]
[hiccup "1.0.5"]
[ns-tracker "0.3.1"]
[org.clojure/java.classpath "0.2.3"]
[org.clojure/tools.namespace "0.2.11"]
[ring/ring-mock "0.3.1"]
[secretary "1.2.3"]
[com.cemerick/clojurescript.test "0.2.3-20140317.141743-3"]
[selmer "1.11.1"]
[commons-codec "1.10"]
[json-html "0.4.0"]
[hiccups "0.3.0"]