Strip \\?\ extended-length prefix from Windows resource paths

Node.js module resolver can't handle the \\?\ prefix that Tauri's
resource_dir() returns on Windows, causing EISDIR errors. Use dunce
to simplify paths before passing them to Node.
This commit is contained in:
Mohamed Boudra
2026-03-11 14:51:47 +07:00
parent e5014a5f57
commit 78849fa0bf
3 changed files with 4 additions and 1 deletions
+1
View File
@@ -2633,6 +2633,7 @@ version = "0.1.25"
dependencies = [ dependencies = [
"base64 0.22.1", "base64 0.22.1",
"dirs", "dirs",
"dunce",
"futures-util", "futures-util",
"http", "http",
"log", "log",
+1
View File
@@ -24,6 +24,7 @@ tauri-build = { version = "2.5.3", features = [] }
[dependencies] [dependencies]
base64 = "0.22" base64 = "0.22"
dirs = "6" dirs = "6"
dunce = "1"
futures-util = "0.3" futures-util = "0.3"
http = "1" http = "1"
serde_json = "1.0" serde_json = "1.0"
@@ -560,7 +560,8 @@ fn dev_resource_root() -> PathBuf {
} }
fn bundled_runtime_root(app: &AppHandle) -> Result<PathBuf, String> { fn bundled_runtime_root(app: &AppHandle) -> Result<PathBuf, String> {
if let Ok(resource_dir) = app.path().resource_dir() { if let Ok(raw_resource_dir) = app.path().resource_dir() {
let resource_dir = dunce::simplified(&raw_resource_dir).to_path_buf();
// Tauri's bundle.resources preserves the source directory structure, so // Tauri's bundle.resources preserves the source directory structure, so
// "resources/**/*" in tauri.conf.json places files at // "resources/**/*" in tauri.conf.json places files at
// $RESOURCE/resources/managed-runtime/. Try the nested path first (installed // $RESOURCE/resources/managed-runtime/. Try the nested path first (installed