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)

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

未定义nameToPath,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发表

抱歉,markdwn有误:(:

0

评论由:range发表

请关闭,因为查看测试后似乎它已经正常工作,所以lein-cljsbuild可能在这个依赖项上已过时。

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