使用re-frame-template创建项目出现警告,如何修复?
问题说明
通过re-frame-template创建项目,执行命令:
lein new re-frame my-project +10x +garden +test
后收到以下警告:
------ WARNING #1 - :redef ----------------------------------------------------- Resource: day8/re_frame_10x/inlined_deps/garden/v1v3v10/garden/color.cljc:390:1 abs already refers to: cljs.core/abs being replaced by: day8.re-frame-10x.inlined-deps.garden.v1v3v10.garden.color/abs -------------------------------------------------------------------------------- ------ WARNING #2 - :redef ----------------------------------------------------- Resource: zprint/range.cljc:81:1 abs already refers to: cljs.core/abs being replaced by: zprint.range/abs -------------------------------------------------------------------------------- ------ WARNING #3 - :undeclared-var -------------------------------------------- Resource: cljs/analyzer.cljc:4403:12 Use of undeclared Var cljs.analyzer/Throwable -------------------------------------------------------------------------------- ------ WARNING #4 - :undeclared-var -------------------------------------------- Resource: cljs/analyzer.cljc:4402:7 Use of undeclared Var cljs.analyzer/ns-resolve --------------------------------------------------------------------------------
修复方案
针对这些警告,可按以下方式处理:
处理:redef类型警告(警告1、2)
这两个警告是依赖库内部与cljs.core/abs的命名冲突,属于依赖版本兼容问题:
- 升级re-frame-template到最新版本:新版本通常会更新内嵌的garden、zprint等依赖,解决这类命名冲突,重新执行创建命令即可。
- 若不想重新创建项目,可手动修改项目根目录下的
project.clj,更新re-frame-10x、garden、zprint的依赖版本到最新兼容版,再执行lein deps刷新依赖。
处理:undeclared-var类型警告(警告3、4)
这类警告是ClojureScript版本与依赖库不匹配导致的:
- 检查
project.clj中的org.clojure/clojurescript版本,升级到与当前依赖兼容的稳定版本,最新稳定版通常能解决这类未声明变量的问题。 - 确保所有依赖版本相互兼容,可通过各依赖的官方文档确认适配的CLJS版本范围。
内容的提问来源于stack exchange,提问作者QSpider
相关产品推荐
相关产品推荐

