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

ESM项目中使用Bun.js无法导入uuid的问题排查

解决BunJS运行ESM项目时的uuid默认导入报错问题

问题根源

  1. Bun原生支持ESM规范,完全不需要esm包——这个包是给不支持原生ESM的旧版Node.js用的,装了反而会干扰Bun的模块解析。
  2. uuid的ESM模块没有提供默认导出,Node.js借助esm加载器做了兼容(自动把命名导出集合转为默认导出),但Bun严格遵循ESM标准,所以直接写import uuid from 'uuid'会触发Missing 'default' import错误。

不修改业务代码的解决方案

方案1:移除esm并通过Bun别名做兼容

  1. 先卸载无用的esm依赖:
npm uninstall esm
  1. 在项目根目录新建bunfig.toml文件,添加别名配置,同时创建兼容文件:
    • 新建uuid-compat.mjs:
      import * as uuid from 'uuid';
      export default uuid;
      
    • 在bunfig.toml里配置别名:
      [alias]
      "uuid" = "./uuid-compat.mjs"
      

方案2:运行时临时注入兼容层

如果不想修改项目文件,可以用Bun的--inject参数在运行时临时补全默认导出:

bun run --inject "import * as u from 'uuid'; export default u":uuid index.mjs

验证执行

完成配置后,直接运行即可正常输出UUID:

bun index.mjs

示例输出:

New UUID: 7a4f9c8d-1b2c-3d4e-5f6a-7b8c9d0e1f2a

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 13:00:07