gpt4 book ai didi

javascript - "The requested module ' 未提供名为“'default'”的导出错误,但仅在相对导入中

转载 作者:行者123 更新时间:2023-12-05 01:05:05 28 4
gpt4 key购买 nike

我有这个来自外部的 api 模块。当它作为 node_module 安装时(使用 npm install),然后像这样进行导入:

import MyAPI from 'api'

但是,当我查看 node_modules 中的 api 文件夹并取出作为模块入口点的 api.js 并执行如下相对导入时:

import MyAPI from './api.js'

然后我得到错误:

"The requested module ./api.js does not provide an export named 'default'"

我无法控制 api 模块的构建方式。它如何在一种情况下起作用,而在另一种情况下却不起作用?这是节点 12。

最佳答案

您已确认模块文件夹中的 package.json 中没有 "type": "module"。这就是问题所在。它使用较旧的 CommonJS 系统,而不是您的模块正在使用的较新的标准 ESM 系统。 Node.js 在通过 ESM ( details ) 加载旧式 CommonJS 模块时会进行一些自动转换。

如果您想将该文件从其模块中复制出来并在不同的模块环境中使用,您必须将其导出(以及可能的导入)转换为 ESM。例如,而不是:

exports.example = function example() { };

应该是

export function example() { }

但这可能很复杂,因为这两个系统的工作方式不同。 CommonJS 是动态的,基于属性分配(尽管结果是静态的),ESM 是静态的,声明性的(尽管结果在某些方面是动态的)。

关于javascript - "The requested module ' 未提供名为“'default'”的导出错误,但仅在相对导入中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71022803/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com