有一个旧的错误,我再次遇到了,这次是在一个deps.edn项目和CI设置中。旧错误:[https://github.com/emezeske/lein-cljsbuild/issues/490](https://github.com/emezeske/lein-cljsbuild/issues/490) - 注意其他人报告说更改源目录名称或将它克隆到另一个名称不同的目录是解决方案。
以下是代码的重跑版本,[https://github.com/clojure/clojurescript/blob/r1.10.520/src/main/clojure/cljs/closure.clj#L1851](https://github.com/clojure/clojurescript/blob/r1.10.520/src/main/clojure/cljs/closure.clj#L1851),实际值已经替换进去:
cljs.closure=> *lp
"cljsjs/openlayers/development/"
cljs.closure=> *p
"/codebuild/output/src923210442/src/github.com/solita/mnt-teet/app/frontend/target/public/cljs-out/tests/l/events/eventtype.js"
cljs.closure=> (subs *p (+ (inc (.lastIndexOf *p *lp)) (.length *lp)))
"/src/github.com/solita/mnt-teet/app/frontend/target/public/cljs-out/tests/l/events/eventtype.js"
最终抛出异常的是这里的 (io/file out-dir out-name) 调用
[https://github.com/clojure/clojurescript/blob/r1.10.520/src/main/clojure/cljs/closure.clj#L2023](https://github.com/clojure/clojurescript/blob/r1.10.520/src/main/clojure/cljs/closure.clj#L2023)
因为它正在使用路径作为第二个参数,该路径以 " / " 字符开始,由 rel-output-path 调用返回。
openlayers 依赖项来自 deps.edn 中的此行:
cljsjs/openlayers {:mvn/version "4.4.1-1"}