desktop: armazenar dados em pasta 'data' ao lado do executável (fallback AppData) e remover NSIS v2 inválido
- main.tsx: resolveDataDir usa executableDir/data quando possível; se falhar, cai para appLocalDataDir - tauri.conf.json: remove bloco windows.nsis inválido no schema v2 para build passar Objetivo: instalar dados fora do AppData (ex.: C:\Raven\data) quando o diretório de instalação permitir escrita.
This commit is contained in:
parent
0b39bcb56c
commit
7bc8a1d945
2 changed files with 16 additions and 11 deletions
|
|
@ -44,14 +44,6 @@
|
||||||
"icons/icon.icns",
|
"icons/icon.icns",
|
||||||
"icons/icon.png",
|
"icons/icon.png",
|
||||||
"icons/Raven.png"
|
"icons/Raven.png"
|
||||||
],
|
]
|
||||||
"windows": {
|
|
||||||
"nsis": {
|
|
||||||
"installMode": "perMachine",
|
|
||||||
"allowToChangeInstallDirectory": true,
|
|
||||||
"installDirName": "Raven",
|
|
||||||
"createDesktopShortcut": true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,8 @@ import { useCallback, useEffect, useMemo, useRef, useState } from "react"
|
||||||
import { createRoot } from "react-dom/client"
|
import { createRoot } from "react-dom/client"
|
||||||
import { invoke } from "@tauri-apps/api/core"
|
import { invoke } from "@tauri-apps/api/core"
|
||||||
import { Store } from "@tauri-apps/plugin-store"
|
import { Store } from "@tauri-apps/plugin-store"
|
||||||
import { appLocalDataDir } from "@tauri-apps/api/path"
|
import { appLocalDataDir, executableDir, join } from "@tauri-apps/api/path"
|
||||||
|
import { createDir, exists } from "@tauri-apps/api/fs"
|
||||||
import { ExternalLink, Eye, EyeOff, GalleryVerticalEnd, Loader2, RefreshCw } from "lucide-react"
|
import { ExternalLink, Eye, EyeOff, GalleryVerticalEnd, Loader2, RefreshCw } from "lucide-react"
|
||||||
import { Tabs, TabsContent, TabsList, TabsTrigger } from "./components/ui/tabs"
|
import { Tabs, TabsContent, TabsList, TabsTrigger } from "./components/ui/tabs"
|
||||||
import { cn } from "./lib/utils"
|
import { cn } from "./lib/utils"
|
||||||
|
|
@ -103,8 +104,20 @@ function normalizeUrl(value?: string | null, fallback = DEFAULT_APP_URL) {
|
||||||
const appUrl = normalizeUrl(import.meta.env.VITE_APP_URL, DEFAULT_APP_URL)
|
const appUrl = normalizeUrl(import.meta.env.VITE_APP_URL, DEFAULT_APP_URL)
|
||||||
const apiBaseUrl = normalizeUrl(import.meta.env.VITE_API_BASE_URL, appUrl)
|
const apiBaseUrl = normalizeUrl(import.meta.env.VITE_API_BASE_URL, appUrl)
|
||||||
|
|
||||||
|
async function resolveDataDir(): Promise<string> {
|
||||||
|
try {
|
||||||
|
const exe = await executableDir()
|
||||||
|
const dir = await join(exe, "data")
|
||||||
|
const ok = await exists(dir).catch(() => false)
|
||||||
|
if (!ok) await createDir(dir, { recursive: true })
|
||||||
|
return dir
|
||||||
|
} catch {
|
||||||
|
return await appLocalDataDir()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
async function loadStore(): Promise<Store> {
|
async function loadStore(): Promise<Store> {
|
||||||
const dir = await appLocalDataDir()
|
const dir = await resolveDataDir()
|
||||||
return await Store.load(STORE_FILENAME, { dir })
|
return await Store.load(STORE_FILENAME, { dir })
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue