请在 2024 Clojure 状态调查 中分享您的想法!

欢迎!有关本网站的功能,请参阅 关于 页面以获得更多信息。

+1
ClojureScript

有一个旧的错误,其他人也看到了报告,我现在再次遇到了,这次是在一个 deps.edn 项目和 CI 接口中。旧错误:https://github.com/emezeske/lein-cljsbuild/issues/490 - 注意其他报告者提出将源目录重命名或克隆到不同命名的目录是解决方案。

这是代码的再次运行,可以在 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

因为 rel-output-path 调用返回的出名的第二个参数是以“/”开头的路径。

openlayers 依赖项源于 deps.edn 中的以下elines

cljsjs/openlayers {:mvn/version "4.4.1-1"}

1 个答案

0

关于这个问题有没有对应的 JIRA 工单?如果您已经解决了这个问题,欢迎提交补丁。

你好!

非常感谢你的回复!

目前还没有JIRA工单,我是通过Clojurians中的#clojurescript频道的人们推荐的,来对问题进行分类,然后如果有必要,就会有人打开JIRA工单。

我记得我对代码尝试在子表达式中获取哪个相对子路径,以及使用路径的意义并不立即明显,所以我没有达到修复的地步。
我已经开始查看这个问题了,但是上述信息并不是一个完整的重现案例。显然我们在`lib-rel-path`中接收到意外的值,我们需要了解这是如何发生的。你能在CI之外重现这个问题吗?谢谢。
再次你好,

谢谢你的帮助。我制作了一个可以在Docker中运行的重现案例,因此应该与环境无关。
https://gist.github.com/erno/9abd8e928302503e932a61e5663eeeb5

要使用,请执行以下操作:

0. 将上述 gist 粘贴到一个名为 Dockerfile 的文件中

1. docker build -t cljs-bug-repro .

2. docker run -it cljs-bug-repro

3. bash repro.sh

如果你在Docker之外的开发环境中重新创建相同的嵌套子目录作为构建目录,并执行git checkout和运行clojure -A:test,这或许也可以在your dev environment中重现。
by
同事又遇到了这个问题。这促使我再次检查上面的复现是否仍然有效。是的,还是有效的。

[Figwheel] 编译测试构建失败,耗时 28.338 秒。
[Figwheel:警告] 编译异常:/src/github.com/solita/mnt-teet/app/frontend/target/public/cljs-out/tests/l/events/eventtype.js 不是相对路径
执行错误(IllegalArgumentException)在 cljs.closure/write-javascript (closure.clj:2031)。
/src/github.com/solita/mnt-teet/app/frontend/target/public/cljs-out/tests/l/events/eventtype.js 不是相对路径

完整报告在
/tmp/clojure-594316621683314904.edn
...