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

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

0
ClojureScript

在 JavaScript 中,当需要模块时,您可以在相对路径中省略扩展名。如果您这样做,并且路径是目录,且该目录包含一个 index.js 文件,则该文件被处理为主脚本。

因此,这个语句

`javascript
const foo = require('./foo')
`

可以解析为 ./foo.js./foo/index.js

模块解析器应考虑这一点,如果解析到所需的目录中的 index.js,则应像下面这样提供,同时提供:

module$Users$user$Documents$project$node_modules$foo$index module$Users$user$Documents$project$node_modules$foo

真实示例请参阅(链接:cljs-name-to-path-issue)(https://github.com/rangeoshun/cljs-name-to-path-issue

它在浏览器中产生了以下错误

未定义的名称ToPath for module$Users$range$Documents$cljs_name_to_path_issue$node_modules$deat_mui_core$colors

这是因为 node_modules/deat-mui-core/colors/index.js 在编译版本中只提供了以下内容

`javascript
goog.provide("module$Users$range$Documents$cljs_name_to_path_issue$node_modules$deat_mui_core$colors$index");
`

如果没有冲突,它还应该提供如下

`javascript
goog.provide("module$Users$range$Documents$cljs_name_to_path_issue$node_modules$deat_mui_core$colors");
`

3 答案

0

评论者:range

抱歉格式化错误:(:

0

评论者:range

请关闭,因为在测试中似乎工作正常,因此 lein-cljsbuild 可能在这个依赖项上过时了。

0
参考: https://clojure.atlassian.net/browse/CLJS-2939 (由 alex+import 报告)
...