类型错误:无法从 /.vscode/extensions/rebornix.ruby-0.28.1/dist/server/tree-sitter.wasm 解析 URL,

jjhzyzn0  于 4个月前  发布在  Vscode
关注(0)|答案(5)|浏览(81)

在更新VSCode之前,一切都很好。更新VSCode后,打开Ruby项目和Ruby语言服务器启动失败。

ldfqzlk8

ldfqzlk81#

自从更新后,遇到了同样的问题。

um6iljoc

um6iljoc2#

我现在也遇到了同样的问题:
TypeError: Failed to parse URL from /home/user/.vscode-server/extensions/rebornix.ruby-0.28.1/dist/server/tree-sitter.wasm
vscode 1.82.0,最新版本 https://marketplace.visualstudio.com/items?itemName=Shopify.ruby-lsp

eulz3vhy

eulz3vhy3#

在这个问题上加1

cgfeq70w

cgfeq70w4#

这与VS Code中的通用WASM支持无关。Ruby语言服务器似乎加载了一个tree-sitter wasm文件。

qyswt5oh

qyswt5oh5#

我已经研究并在这个问题( https://qiita.com/tt4q/items/0bffdcaf877d1ca1182a )上发帖。然而,由于它是用日语写的,许多人将无法阅读它,所以我将描述主要要点。
Visual Studio Code v1.82中的Electron已经升级,Node.js也已经升级。升级后的Node.js现在提供了一个 fetch API。
tree-sitter.wasm似乎是用 Emscripten 构建的。Emscripten是一个生成支持多种执行环境的 .wasm 的工具,它似乎通过在运行时定义的符号来识别执行环境。
不幸的是,Emscripten有一个运行时分支,表示“如果 fetch API未定义,则不是Node.js”。而且,如果不是Node.js,Emscripten将使用 fetch API加载 .wasm
fetch API规范要求支持 http://https:// 方案。对 file:// 方案的支持不是必需的,出于安全原因,Node.js的 fetch API不支持它( nodejs/node#48554 )。然而,Emscripten将尝试通过 fetch("/path/to/tree-sitter.wasm") 加载 TypeError: Failed to parse URL from /path/to/tree-sitter.wasm 。这是导致 TypeError: Failed to parse URL from /path/to/tree-sitter.wasm 错误的原因。
Emscripten已经修复了这个bug( emscripten-core/emscripten#16913 )。最好在修复bug后发布使用 Emscripten构建的 rebornix.ruby 扩展。然而, rebornix.ruby 已不再维护。
我找到的解决方法是一个阻止Node.js定义 fetch API的 --no-experimental-fetch 选项。Visual Studio Code没有向Node.js传递参数的能力,所以请使用 NODE_OPTIONS 环境变量(例如 NODE_OPTIONS="--no-experimental-fetch" code . )。
请注意,这种解决方法将起作用,但可能会导致依赖于Node.js提供的 fetch 的扩展停止工作。

相关问题