【发布时间】:2022-02-08 01:37:10
【问题描述】:
我有这个来自外部的 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",但是你的模块(显然)有,因为你'正在使用 ESM。 Node.js 在通过 ESM (details) 加载旧式 CommonJS 模块时会进行一些自动转换。 -
api.js的导出是什么样的? -
true,模块的package.json中没有type:module。
-
api.js 是用 webpack 构建的。我认为它转换为 IEFE 模块,没有导出语句。