You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何(await import("node:process")).on的结果为undefined?

问题原因解析

这是因为Node.js中node:process模块的导出机制,在静态导入和动态导入时的访问方式存在差异:

  • 静态导入import process from "node:process"时,process变量直接拿到的是模块的默认导出值——也就是全局的process对象本身,这个对象自带on方法(用于监听进程事件),所以能正常输出预期结果。
  • 动态导入await import("node:process")返回的是一个模块命名空间对象,这个对象本身并不包含on方法,你需要通过它的default属性才能获取到全局process对象。直接访问.on相当于在命名空间对象上查找不存在的属性,自然返回undefined。

正确的动态导入写法应该是:

const processModule = await import("node:process");
console.log(processModule.default.on); // 会输出预期的on方法

简单来说,静态导入的默认导出语法帮你直接取到了模块的默认值,而动态导入需要你手动从返回的模块对象里提取default属性对应的内容。

内容的提问来源于stack exchange,提问作者Marco

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 17:17:02