【Cloudflare Worker】MiniflareCoreError [ERR_RUNTIME_FAILURE]: The workers runtime failed to start ...

前言

因为想用 Worker API 绑定 Cloudflare R2 便于使用,所有遵循官方文档创建模板。

npm create cloudflare@latest r2-worker

报错过程

按步骤创建好后,运行 npm run dev 遭遇一下报错:

在这里插入图片描述

通过查看日志文件详细信息如下:

--- 2024-06-30T19:28:07.425Z debug
🪵  Writing logs to "C:\Users\...\.wrangler\logs\wrangler-2024-06-30_19-28-07_302.log"
---

--- 2024-06-30T19:28:07.425Z debug
Failed to load .env file ".env": Error: ENOENT: no such file or directory, open 'C:\Cycles of Seasons\100 - Virtues\110 - Demiourgia\test-wrangler\hello-world-js\.env'
    at Object.openSync (node:fs:573:18)
    at Object.readFileSync (node:fs:452:35)
    at tryLoadDotEnv (C:\...\test-wrangler\hello-world-js\node_modules\wrangler\wrangler-dist\cli.js:158768:72)
    at loadDotEnv (C:\...\test-wrangler\hello-world-js\node_modules\wrangler\wrangler-dist\cli.js:158777:12)
    at C:\...\test-wrangler\hello-world-js\node_modules\wrangler\wrangler-dist\cli.js:202740:20
    at C:\...\test-wrangler\hello-world-js\node_modules\wrangler\wrangler-dist\cli.js:162911:16
    at maybeAsyncResult (C:\...\test-wrangler\hello-world-js\node_modules\wrangler\wrangler-dist\cli.js:161132:44)
    at C:\...\test-wrangler\hello-world-js\node_modules\wrangler\wrangler-dist\cli.js:162910:14
    at C:\...\test-wrangler\hello-world-js\node_modules\wrangler\wrangler-dist\cli.js:161119:22
    at Array.reduce (<anonymous>) {
  errno: -4058,
  code: 'ENOENT',
  syscall: 'open',
  path: 'C:\\...\\test-wrangler\\hello-world-js\\.env'
}
---

--- 2024-06-30T19:28:07.432Z log

 ⛅️ wrangler 3.62.0
[38;2;255;136;0m-------------------[39m

---

--- 2024-06-30T19:28:07.450Z debug
Metrics dispatcher: Posting data {"type":"event","name":"run dev","properties":{"local":true,"usesTypeScript":false}}
---

--- 2024-06-30T19:28:07.455Z debug
Failed to load .env file "C:\...\test-wrangler\hello-world-js\.dev.vars": Error: ENOENT: no such file or directory, open 'C:\...\test-wrangler\hello-world-js\.dev.vars'
    at Object.openSync (node:fs:573:18)
    at Object.readFileSync (node:fs:452:35)
    at tryLoadDotEnv (C:\...\test-wrangler\hello-world-js\node_modules\wrangler\wrangler-dist\cli.js:158768:72)
    at loadDotEnv (C:\...\test-wrangler\hello-world-js\node_modules\wrangler\wrangler-dist\cli.js:158777:12)
    at getVarsForDev (C:\...\test-wrangler\hello-world-js\node_modules\wrangler\wrangler-dist\cli.js:200152:18)
    at getBindings (C:\...\test-wrangler\hello-world-js\node_modules\wrangler\wrangler-dist\cli.js:207740:10)
    at getBindingsAndAssetPaths (C:\...\test-wrangler\hello-world-js\node_modules\wrangler\wrangler-dist\cli.js:207621:20)
    at getDevReactElement (C:\...\test-wrangler\hello-world-js\node_modules\wrangler\wrangler-dist\cli.js:207276:40)
    at startDev (C:\...\test-wrangler\hello-world-js\node_modules\wrangler\wrangler-dist\cli.js:207343:60)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5) {
  errno: -4058,
  code: 'ENOENT',
  syscall: 'open',
  path: 'C:\\...\\test-wrangler\\hello-world-js\\.dev.vars'
}
---

--- 2024-06-30T19:28:07.571Z log
[2m⎔ Starting local server...[22m
---

--- 2024-06-30T19:28:07.580Z debug
*** Received structured exception #0xc0000005: access violation; stack: 7ffcf4ed2f57 7ff7e9e1643b 7ff7e9e16503 7ff7e9e0588c 7ff7e9e05837 7ff7e9649c1e 7ff7e9649f2f 7ff7e8531ad6 7ff7e85318ba 7ff7e97cb6ef 7ff7e97d28a6 7ff7e97cbc0c 7ff7e97d28a6 7ff7e97c957c 7ff7e8521551 7ff7eaf00f7f 7ffd07c2257c 7ffd0824af27
---

--- 2024-06-30T19:28:07.632Z debug
*** Received structured exception #0xc0000005: access violation; stack: 7ffcf4ed2f57 7ff7e9e1643b 7ff7e9e16503 7ff7e9e0588c 7ff7e9e05837 7ff7e9649c1e 7ff7e9649f2f 7ff7e8531ad6 7ff7e85318ba 7ff7e97cb6ef 7ff7e97d28a6 7ff7e97cbc0c 7ff7e97d28a6 7ff7e97c957c 7ff7e8521551 7ff7eaf00f7f 7ffd07c2257c 7ffd0824af27
---

明显可以看到因缺少 .env.dev.vars 报错,但这不是重点,即使添加了文件依旧报错。

问题出在这:

--- 2024-06-30T19:28:07.580Z debug
*** Received structured exception #0xc0000005: access violation; stack: 7ffcf4ed2f57 7ff7e9e1643b 7ff7e9e16503 7ff7e9e0588c 7ff7e9e05837 7ff7e9649c1e 7ff7e9649f2f 7ff7e8531ad6 7ff7e85318ba 7ff7e97cb6ef 7ff7e97d28a6 7ff7e97cbc0c 7ff7e97d28a6 7ff7e97c957c 7ff7e8521551 7ff7eaf00f7f 7ffd07c2257c 7ffd0824af27
---

--- 2024-06-30T19:28:07.632Z debug
*** Received structured exception #0xc0000005: access violation; stack: 7ffcf4ed2f57 7ff7e9e1643b 7ff7e9e16503 7ff7e9e0588c 7ff7e9e05837 7ff7e9649c1e 7ff7e9649f2f 7ff7e8531ad6 7ff7e85318ba 7ff7e97cb6ef 7ff7e97d28a6 7ff7e97cbc0c 7ff7e97d28a6 7ff7e97c957c 7ff7e8521551 7ff7eaf00f7f 7ffd07c2257c 7ffd0824af27
---

这个报错有点不明所以,只能去官方 Github 仓库 woker-sdk 下的 issues 寻找解决方法。

解决方法

经过一番查找,最终在 #6170 下找到了解决方法。

该报错可能是由于电脑的 Microsoft Visual C++ 与 wrangler 的依赖包版本不兼容导致的,大多发生在 Windows 11 系统,所以有两种解决方法。


使用更低版本的 wrangler

经测试,使用 3.57.1 版本的 wrangler,可以正常运行。可以直接运行下面的命令来降级:

npm uninstall wrangler && npm install wrangler@3.57.1 -D

不过该方法指标不治本,只能用于临时应急,不太推荐。


更新 Microsoft Visual C++ 到最新版本

wrangler 引用的是下面两个版本的库,所以我们只需要更新它们即可。

在这里插入图片描述
图中是 wrangler 能够正常运行的版本,也是我现在的最新版本,建议更新时选择该版本及以上版本。

这里推荐直接去“官方下载地址”下载最新软件包更新。

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Cloudflare是一种网站加速和安全服务提供商,而WordPress是一种流行的内容管理系统。相互结合使用时,有时会遇到“err_too_many_redirects”错误。 这个错误通常发生在网站重定向设置出现问题时。当Cloudflare和WordPress同时配置了HTTPS,但是其重定向规则不匹配时,就会出现此错误。这可能是由于不正确的SSL设置、无限循环的重定向规则或其他参数设置不当导致的。 要解决这个问题,有几个步骤可以尝试: 首先,确保你的WordPress网站和Cloudflare都配置了正确的SSL设置,例如使用相同的SSL/TLS选项和相同的URL设置。确保WordPress设置中的网址与Cloudflare中的网址匹配。 其次,检查你的重定向规则是否设置正确。在WordPress设置中,打开“常规设置”并确保WordPress地址和站点地址正确。在Cloudflare中,检查“SSL/TLS”选项页面和“网页规则”页面,确保重定向规则设定正确。 还要检查Cloudflare中的缓存设置。如果启用了“全站缓存”,可以尝试禁用它,然后在WordPress设置中手动清除缓存。有时这可以解决“err_too_many_redirects”错误。 如果以上步骤没有解决问题,可以尝试禁用所有的插件和主题,然后逐个重新启用,以查找是否有某个插件或主题导致了重定向循环。 最后,如果仍然无法解决问题,建议查看WordPress和Cloudflare的官方文档和论坛,以获取更多关于此错误的详细解答和可能的解决方案。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值