codesandbox.io使用URL-based imports报错 咨询ESModule预设配置位置
报错触发原因
该报错的核心原因是当前CodeSandbox沙箱默认加载CommonJS兼容预设,不支持原生ESM的URL导入特性,URL-based import仅在实验性ESM预设下开放使用。
配置文件位置
实验性ESModule preset的配置项存放在项目根目录的sandbox.config.json文件中,若项目内无该文件,直接在根目录新建即可。
启用配置步骤
- 定位到项目根目录,打开或新建
sandbox.config.json文件 - 在配置中显式指定沙箱容器使用
esm预设,参考配置如下:
{ "template": "node", "container": { "node": "18", "preset": "esm" } }
- 保存配置文件,沙箱会自动重载应用新配置
若使用纯前端静态项目(无Node服务逻辑),仅需将上述配置中的
template字段替换为当前项目使用的模板标识即可(如vanilla、react、vue等),核心生效字段为container.preset: "esm",该字段值不可修改。
效果验证
沙箱重载完成后,即可正常使用URL-based import语法,直接通过URL导入ES Module资源不会再触发该报错,示例写法:
import dayjs from 'https://esm.sh/dayjs@1.11.10'
注意:该ESM预设目前仍处于实验阶段,部分第三方依赖可能存在兼容性问题,若碰到依赖加载失败可尝试更换ESM CDN源重试。
内容的提问来源于stack exchange,提问作者Ben Aston
相关产品推荐
相关产品推荐

