0

有人熟悉使用 boot-clj 并将cljsjsreact-with-addons 打包到一个试剂项目中吗?试剂已经需要反应,因此您必须明确列出排除项,如此处所述。尽管如此,构建过程总是输出 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/server 通过 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 []}]}}}}}

如果有人能对为什么引导继续吸引非插件反应有所了解,我将不胜感激。

4

1 回答 1

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。

于 2016-08-11T14:58:54.510 回答