Clojure 2024状态调研中分享您的想法!

欢迎!请参阅关于页面了解此功能的相关信息。

0
ClojureScript
https://script.clojure.org/guides/javascript-modules

hello-es6示例使用目录将{{:module-type}}应用于该目录中的每个文件。


{:file "src" :module-type :es6}


这导致{{src/js/hello.js}}被别名为{{js.hello}}命名空间,然后.cljs文件可以执行{{:require}}。

给定以下目录结构

{:file "lib-a" :module-type :es6}
{:file "lib-b" :module-type :es6}

.
├── lib-a
│   └── js
│       └── hello.js
├── lib-b
│   └── js
│       └── hello.js


这导致{{lib-b}}在它们都声明{{js.hello}}名称的情况下,静默替换{{lib-a}}。

在遵循closure兼容库中存在相同的问题,但它们通常遵循某种手动命名空间(例如,goog.string、cljs.core...),而ES6/JS库则不这样做(并且甚至不支持,因为它们使用相对导入而不是绝对导入)

不确定如何处理此问题,但至少应该有一些警告表明存在冲突别名。

示例在此:https://github.com/thheller/hello-es6-conflict

1 答案

0
...