boot-clj clojurescript项目是否具有试剂和反应物?

时间:2016-08-11 14:30:33

标签: reactjs clojurescript reagent boot-clj

是否有人熟悉使用boot-clj和cljsjs在试剂项目中打包反应物?试剂已经需要反应,因此您必须明确列出排除as noted here。尽管如此,构建过程始终输出react.inc.js而不是react-with-addons.inc.js。这是我的启动文件...

  [reagent "0.6.0-alpha" :exclusions [cljsjs/react cljsjs/react-dom cljsjs/react-dom-server]]
  ,,,[cljsjs/react-with-addons "15.1.0-0"]
  ,,,[cljsjs/react-dom "15.1.0-0"]
  ,,,[cljsjs/react-dom-server "15.1.0-0"]

如果我看一下试剂构建过程,它似乎需要r-dom和r-dom /服务器通过cljsjs包,但随后从webpack构建中提供自己的反应:

  :dependencies [[org.clojure/clojure "1.8.0"]
                 [org.clojure/clojurescript "1.8.51"]
                 [cljsjs/react-dom "15.2.1-0"]
                 [cljsjs/react-dom-server "15.2.1-0”]]

  …
  :webpack {:cljsbuild
             {:builds {:client
                       {:compiler
                        {:foreign-libs
                         [{:file "target/webpack/bundle.js"
                           :file-min "target/webpack/bundle.min.js"
                           :provides ["cljsjs.react.dom"
                                      "cljsjs.react.dom.server"
                                      "cljsjs.react"]
                           :requires []}]}}}}}

如果有人能够了解为什么引导继续引入非加入者的反应,我将非常感激。

1 个答案:

答案 0 :(得分:0)

嗯,我希望我的工作时间可以帮助别人。

解决方案是:

          [reagent "0.6.0-alpha" :exclusions [cljsjs/react cljsjs/react-dom cljsjs/react-dom-server]]
          ,,,[cljsjs/react-with-addons "15.1.0-0"]
          ;; boot show -d illuminates that react-dom requires react, but we want to use react-with-addons
          ,,,[cljsjs/react-dom "15.1.0-0" :exclusions [cljsjs/react]]
          ,,,[cljsjs/react-dom-server "15.1.0-0" :exclusions [cljsjs/react]]

事实证明,react-dom和dom-server具有瞬态依赖关系,这些依赖关系正在引入不正确的反应版本。明确排除它们修复了问题,并且正确打包了with-addons。