Vue 3-Error [ERR_UNSUPPORTED_ESM_URL_SCHEME]: Only file and data URLs are supported

问题

Error [ERR_UNSUPPORTED_ESM_URL_SCHEME]: Only file and data URLs are supported by the default ESM loader

方案

nodejs版本太低,升级node版本至v16以上!

升级nodejs方法

查看当前node版本

$ node -v

清除npm缓存

$ npm cache clean -f

全局安装n

$ npm install -g n

升级到最新稳定版

$ n stable

升级到最新版

$ n latest

升级到定制版

$ n v14.6.0

切换使用版本

$ n 13.10.0 (ENTER)

删除制定版本

$ n rm 13.10.0

用制定的版本执行脚本

$ n use 13.10.0 some.js

升级完成查看 node版本

$ node -v

### 解决方案 在 Windows 上运行 `pnpm create vue` 出现 `ERR_UNSUPPORTED_ESM_URL_SCHEME` 错误的原因通常与 Node.jsESM 加载机制有关。此错误表明当前使用的 Node.js 版本可能不支持通过 URL 导入模块的方式,或者项目配置存在问题。 以下是针对该问题的解决方案: #### 1. 更新 Node.js 到最新版本 Node.js 不断改进其对 ECMAScript Modules (ESM) 的支持。如果使用的是较旧版本的 Node.js,则可能会遇到此类兼容性问题。建议升级到 LTS 或稳定版的 Node.js[^2]。 可以通过以下命令检查当前 Node.js 版本: ```bash node -v ``` 更新 Node.js 可以通过官方安装程序完成,也可以使用工具如 nvm(Node Version Manager)来管理多个 Node.js 版本: ```bash nvm install --lts nvm use --lts ``` #### 2. 使用 `--input-type=module` 参数 某些情况下,指定输入类型可以解决问题。尝试在执行脚本时显式声明为模块模式: ```bash node --input-type=module ./path/to/your/script.mjs ``` 不过对于 `pnpm create vue` 命令来说,这一步通常是不必要的,除非自定义了加载逻辑[^3]。 #### 3. 修改环境变量或配置文件 有时需要调整 Node.js 的启动参数以启用实验性的功能。可以在运行命令前设置环境变量: ```bash set NODE_OPTIONS="--experimental-specifier-resolution=node" pnpm create vue ``` 上述方法强制启用了 Node.js 对特定路径解析的支持[^4]。 #### 4. 替代 CLI 工具链 如果以上方式仍然无法解决,考虑更换包管理器或初始化工具。例如改用 Yarn 初始化 Vue 项目: ```bash npm install -g @vue/cli vue create my-project ``` 另外,确认已全局安装所需依赖项,比如部署服务工具: ```bash npm install deploy-cli-service -g [^1] ``` #### 5. 检查 pnpm 和插件版本 确保本地安装的 pnpm 是最新的,并验证所使用的模板是否适配当前开发环境: ```bash pnpm add -g pnpm@latest pnpm dlx @vue/create ``` --- ### 示例代码片段 下面是一个简单的测试脚本来验证 Node.js 是否正常处理 ESM 文件: ```javascript // test.mjs import { readFile } from 'fs/promises'; const content = await readFile(new URL('./example.txt', import.meta.url)); console.log(content.toString()); ``` 运行它并观察是否有类似的错误提示: ```bash node test.mjs ``` --- ### 总结 综上所述,推荐优先更新 Node.js 至最新版本,同时适当修改环境选项以适应新的模块导入策略。必要时切换至其他构建工具作为临时替代方案。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

山水好风光

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值