在 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");
`