bhauman / devcards

Devcards aims to provide a visual REPL experience for ClojureScript
1.53k stars 116 forks source link

Conflict with React and [:optimizations :advanced] in 0.2.1-7 #106

Closed kthu closed 7 years ago

kthu commented 8 years ago

Upgrading devcards from 0.2.1-6 to 0.2.1-7, breaks my project when building with :optimizations :advanced.

I reproduced the problem in a minimal project:

kjetil in ~/U/react-conflict master> grep devcards project.clj 
                 [devcards                   "0.2.1-7"]
kjetil in ~/U/react-conflict master> lein do clean, cljsbuild once 
Compiling ClojureScript...
Compiling "resources/public/js/compiled/react_conflict.js" from ["src"]...
mai 27, 2016 1:25:41 PM com.google.javascript.jscomp.LoggerErrorManager println
SEVERE: file:/home/kjetil/.m2/repository/cljsjs/react-dom-server/0.14.3-0/react-dom-server-0.14.3-0.jar!/cljsjs/react-dom-server/common/react-dom-server.ext.js:13: ERROR - constant ReactDOMServer assigned a value more than once.
Original definition at file:/home/kjetil/.m2/repository/cljsjs/react-dom/0.14.3-0/react-dom-0.14.3-0.jar!/cljsjs/react-dom/common/react-dom.ext.js:85
var ReactDOMServer = {};
^

mai 27, 2016 1:25:41 PM com.google.javascript.jscomp.LoggerErrorManager printSummary
WARNING: 1 error(s), 0 warning(s)
ERROR: JSC_CONSTANT_REASSIGNED_VALUE_ERROR. constant ReactDOMServer assigned a value more than once.
Original definition at file:/home/kjetil/.m2/repository/cljsjs/react-dom/0.14.3-0/react-dom-0.14.3-0.jar!/cljsjs/react-dom/common/react-dom.ext.js:85 at file:/home/kjetil/.m2/repository/cljsjs/react-dom-server/0.14.3-0/react-dom-server-0.14.3-0.jar!/cljsjs/react-dom-server/common/react-dom-server.ext.js line 13 : 0
Successfully compiled "resources/public/js/compiled/react_conflict.js" in 13.435 seconds.
kjetil in ~/U/react-conflict master> sed -i.bak 's/0.2.1-7/0.2.1-6/' project.clj
kjetil in ~/U/react-conflict ≠ master> grep devcards project.clj 
                 [devcards                   "0.2.1-6"]
kjetil in ~/U/react-conflict ≠ master> lein do clean, cljsbuild once 
Compiling ClojureScript...
Compiling "resources/public/js/compiled/react_conflict.js" from ["src"]...
Successfully compiled "resources/public/js/compiled/react_conflict.js" in 16.846 seconds.
kjetil in ~/U/react-conflict ≠ master> 

Project available here: https://github.com/kthu/devcards-problem

bhauman commented 8 years ago

More than likely this was caused be me downgrading the cljsjs/react-dom library from [cljsjs/react-dom "0.14.3-1"] to [cljsjs/react-dom "0.14.3-0"] to bring it inline with the react and react-dom-server libraries. Apparently it was that was for a reason.

https://github.com/bhauman/devcards/commit/29eb06bb4f8030ada16914a1a6c71683bbcf5c0c#diff-0fff143854a4f5c0469a3819b978a483L11

You can probably fix this by adding [cljsjs/react-dom "0.14.3-1"] to your dependencies.

kthu commented 8 years ago

You can probably fix this by adding [cljsjs/react-dom "0.14.3-1"] to your dependencies.

Indeed. That fixed it. Thanks!

metametadata commented 8 years ago

I've just had the similar problem with the latest Reagent. Excluding react stuff in devcards dep fixed it:

:dependencies [
  [org.clojure/clojure "1.8.0"]
  [org.clojure/clojurescript "1.9.36"]

  [reagent "0.6.0-rc" :exclusions [cljsjs/react]]
  [cljsjs/react-with-addons "15.1.0-0"]

  [devcards "0.2.1-7" :exclusions [cljsjs/react cljsjs/react-dom]]]