Tauri + SvelteKit + Bun** 项目打包后出现 `asset not found` 错误的完整修复方案

以下是针对 Tauri + SvelteKit + Bun 项目打包后出现 asset not found 错误的完整修复方案,结合官方文档和实际配置场景:


1. 核心问题分析

asset not found 错误通常由以下原因导致:

  • SvelteKit 构建输出目录未正确配置:Tauri 或 Bun 无法定位 index.html 等静态资源。
  • SSR/SSG 模式冲突:SvelteKit 未正确禁用服务端渲染(SSR)或静态生成(SSG)配置。
  • Tauri 资源路径未同步tauri.conf.json 中的 distDir 未指向 SvelteKit 的构建目录。
  • Bun 静态服务配置缺失:Bun 未正确配置静态文件服务或路由处理。

2. 修复步骤

2.1 配置 SvelteKit 为静态生成模式

svelte.config.js 中,必须使用 @sveltejs/adapter-static 并禁用 SSR:

import adapter from '@sveltejs/adapter-static';

export default {
  kit: {
    adapter: adapter({
      pages: 'build',    // 构建输出目录
      assets: 'build',  // 静态资源目录
      fallback: 'index.html' // 客户端路由回退
    }),
  },
};

关键点

  • 禁用 SSR:在 src/routes/+layout.ts 中添加:
    export const prerender = true;
    export const ssr = false;
    
  • 安装依赖:bun add --dev @sveltejs/adapter-static 18

2.2 确保 Tauri 指向正确构建目录

src-tauri/tauri.conf.json 中配置:

{
  "build": {
    "distDir": "../build", // 必须与 SvelteKit 的输出目录一致
    "devPath": "http://localhost:5173"
  },
  "tauri": {
    "embeddedServer": {
      "pattern": { "use": "browser" } // 处理客户端路由
    }
  }
}

验证

  • 执行 bun run build 后,检查 build 目录是否生成 index.html
  • 若路径错误,需手动调整 distDir 127

2.3 配置 Bun 静态文件服务

创建 server.js 文件,处理静态资源和路由:

import { serve } from 'bun';

serve({
  port: 3000,
  fetch(request) {
    const path = new URL(request.url).pathname;
    const file = Bun.file(`./build${path === '/' ? '/index.html' : path}`);
    return new Response(file);
  },
});

启动命令

bun run build && bun run server.js

注意:Bun 的路径需与 SvelteKit 的构建目录完全匹配 2780


3. 常见场景及解决方案

3.1 动态路由失效

现象:访问 /user/123 等动态路径时返回 404。
修复

  • svelte.config.js 中确认 fallback: 'index.html'
  • 在 Tauri 的 tauri.conf.json 中启用 "pattern": "browser" 132

3.2 静态资源加载失败(CSS/JS)

现象:控制台提示资源路径错误。
修复

  • 检查 SvelteKit 的 assets 目录是否包含资源。
  • 确保 Bun 的静态服务路径正确(如 ./build/_app/...69

3.3 生产环境路径问题

现象:开发环境正常,但打包后资源丢失。
修复

  • vite.config.ts 中设置 base: './'(相对路径模式)。
  • 使用 tauri build --debug 调试构建流程 2769

4. 参考文档


版权声明
本文由 优快云 用户原创,未经许可禁止转载。如需引用请注明出处并附原文链接。

<think>嗯,用户想在Mac上运行Tauri + Vue3 + TypeScript项目。首先,我需要回忆一下Tauri的基本安装步骤,以及如何与Vue3和TypeScript集成。根据提供的引用,特别是引用[3]和引用[4],里面提到了环境配置和项目结构。 首先,用户可能已经按照引用[2]的步骤用npm create vite@latest创建了项目,但需要确认是否安装了必要的依赖,比如vue-router。不过用户的问题更多是关于Tauri在Mac上的配置。 接下来,Tauri的官方文档提到需要安装一些系统依赖,比如Rust和CLI工具。在Mac上,可能需要用Homebrew来安装这些依赖。然后,创建项目的时候可能需要使用create-tauri-app或者手动配置。根据引用[4]中的vite.config.ts,用户需要正确配置Vite插件和别名,确保Vue和Tauri的集成。 还要注意,Mac可能需要额外的权限,比如访问摄像头或文件系统,这涉及到修改tauri.conf.json中的配置,如引用[3]提到的窗口设置和构建命令。另外,开发服务器的路径是否正确,比如devPath指向Vite的本地服务器端口,通常是5173。 用户可能遇到的常见问题包括Rust安装失败、Cargo命令找不到,或者构建时的权限问题。需要指导用户检查环境变量,确认Rust和Node.js版本是否符合要求。此外,如果使用Vite的HMR,可能需要关闭overlay,如引用[4]中的配置,避免与Tauri的冲突。 最后,启动项目时应该运行npm run tauri dev,这会同时启动Vue的开发服务器和Tauri的应用窗口。如果构建安装包,可能需要处理签名问题,但开发阶段可能不需要。用户可能还需要参考引用[5]的项目地址,查看示例配置。</think>### 在 Mac 上运行 Tauri + Vue3 + TypeScript 项目的步骤 #### 1. **环境准备** - **安装 Rust 工具链** 终端执行: ```bash curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh source "$HOME/.cargo/env" ``` 安装后验证:`rustc --version`[^3] - **安装 Node.js 和 npm** 推荐使用 `nvm` 管理 Node.js 版本: ```bash curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | bash nvm install --lts ``` - **安装 Tauri CLI** ```bash npm install -g @tauri-apps/cli ``` #### 2. **创建项目** - **通过 Vite 初始化 Vue3 + TS 项目** ```bash npm create vite@latest my-tauri-app -- --template vue-ts cd my-tauri-app ``` 安装 Vue 依赖: ```bash npm install ``` - **集成 Tauri**项目根目录执行: ```bash npm install @tauri-apps/api tauri init ``` 根据提示配置 `tauri.conf.json`,参考引用[3]的窗口设置。 #### 3. **配置调整** - **修改 `vite.config.ts`** 确保包含 Tauri 插件和 Vue 配置(如引用[4]所示): ```typescript import { defineConfig } from "vite"; import vue from "@vitejs/plugin-vue"; import tauri from "./tauri-plugin"; // 需手动创建或根据项目调整 export default defineConfig({ plugins: [vue(), tauri()], server: { hmr: { overlay: false } }, resolve: { alias: { vue: "vue/dist/vue.esm-bundler.js" } } }); ``` - **检查 `tauri.conf.json`** 确保 `build` 配置指向 Vite 输出目录(参考引用[3]): ```json "build": { "beforeDevCommand": "npm run dev", "devPath": "http://localhost:5173", "distDir": "../dist" } ``` #### 4. **启动开发环境** - **运行命令** ```bash npm run tauri dev ``` 此命令会同时启动 Vite 开发服务器和 Tauri 应用窗口[^3]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

i建模

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

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

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

打赏作者

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

抵扣说明:

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

余额充值