Windows运行Nuxt 3项目遇ERR_UNSUPPORTED_ESM_URL_SCHEME错误
Windows下运行Nuxt 3项目出现
ERR_UNSUPPORTED_ESM_URL_SCHEME错误的解决方案 问题描述
在Windows 10环境运行Nuxt 3项目时触发路径协议不支持的错误,相同项目在Mac上可正常运行。
环境信息
- Nuxt版本:3.0.0-rc.8
- 操作系统:Windows 10.0.19045
- Node版本:v18.16.1
- 终端:Git Bash 2.41.0.windows.2
错误日志
Error [ERR_UNSUPPORTED_ESM_URL_SCHEME]: Only URLs with a scheme in: file and data are supported by the default ESM loader. On Windows, absolute paths must be valid file:// URLs. Received protocol 'c:' at new NodeError (node:internal/errors:399:5) at throwIfUnsupportedURLScheme (node:internal/modules/esm/resolve:1059:11) at defaultResolve (node:internal/modules/esm/resolve:1135:3) at nextResolve (node:internal/modules/esm/loader:163:28) at ESMLoader.resolve (node:internal/modules/esm/loader:838:30) at ESMLoader.getModuleJob (node:internal/modules/esm/loader:424:18) at ModuleWrap. (node:internal/modules/esm/module_job:77:40) at link (node:internal/modules/esm/module_job:76:36)
已尝试的修复措施
- 执行
yarn重新安装依赖 - 将Node更新至v18.16.1(最新推荐版本)
- 安装Vue CLI
- 检查代码中是否直接使用
c:路径标识(未发现) - 检查代码中是否使用
normalize(path)处理路径(未发现)
解决方案
该错误核心是Windows平台下ESM加载器无法识别未带file://协议的本地绝对路径,以下是可行修复方向:
1. 排查Nuxt配置与第三方依赖路径处理
- 检查
nuxt.config.ts中的自定义路径配置(如alias、build模块参数),优先使用Nuxt内置的~/别名替代绝对路径,或用path.resolve()生成跨平台兼容路径 - 删除
node_modules和yarn.lock(或package-lock.json),重新执行yarn install,确保依赖安装的是适配Windows的版本,避免第三方依赖硬编码路径问题
2. 调整终端运行方式
Git Bash对Windows路径的解析存在差异,可尝试:
- 改用Windows原生的命令提示符(CMD)或PowerShell启动项目
- 若必须使用Git Bash,切换项目目录时采用
cd /c/Users/xxx/your-project格式,避免c:\xxx这类原生Windows路径写法
3. 升级Nuxt至稳定版
当前使用的是Nuxt 3的RC测试版(3.0.0-rc.8),存在较多跨平台兼容性bug,升级到正式稳定版可解决大部分路径相关问题:
yarn add nuxt@latest
4. 确认ESM配置正确性
检查项目根目录的package.json,确保已设置"type": "module"(Nuxt 3默认会配置,但可手动确认),避免CommonJS与ESM混合导致的路径解析冲突
内容的提问来源于stack exchange,提问作者Marnix Elling
相关产品推荐
相关产品推荐

