功能开关

启用或禁用基座的各项功能

类型定义

interface FeaturesConfig {
  /**
   * 启用自动更新(默认 true)
   */
  updater?: boolean;

  /**
   * 启用数据库(默认 true)
   */
  database?: boolean;

  /**
   * 启用 Sentry 错误监控(默认 false)
   */
  sentry?: boolean;
}

默认值

功能默认值
updatertrue
databasetrue
sentryfalse

配置示例

features: {
  updater: true,   // 启用自动更新
  database: true,  // 启用 SQLite 数据库
  sentry: false,   // 禁用 Sentry
},

updater - 自动更新

启用后:

  • 应用启动时自动检查更新
  • 设置页显示"检查更新"按钮
  • 可使用 useUpdater hook

禁用后:

  • 不检查更新
  • 设置页不显示更新相关 UI
  • useUpdater hook 返回空操作
// 禁用自动更新
features: {
  updater: false,
},

自动更新需要在 tauri.conf.json 中配置 updater 端点才能正常工作。

database - SQLite 数据库

启用后:

  • 自动初始化 SQLite 数据库
  • 执行基座迁移和应用迁移
  • 可使用数据库相关 API

禁用后:

  • 不初始化数据库
  • 数据库相关 API 将抛出错误
// 禁用数据库
features: {
  database: false,
},

禁用数据库后,useSettinguseAppState 等 hooks 将无法使用。

sentry - 错误监控

启用后:

  • 初始化 Sentry SDK
  • 自动捕获未处理异常
  • 可使用 captureErrorsetUser 等 API

禁用后:

  • 不加载 Sentry SDK
  • 错误监控 API 为空操作
// 启用 Sentry
features: {
  sentry: true,
},

sentry: {
  dsn: 'https://xxx@sentry.io/xxx',
  tracesSampleRate: 0.1,
},

启用 Sentry 需要同时配置 sentry.dsn,否则不会初始化。

完整示例

export const config = {
  features: {
    updater: true,
    database: true,
    sentry: process.env.NODE_ENV === 'production',
  },

  // 如果启用 sentry,需要配置
  sentry: {
    dsn: import.meta.env.VITE_SENTRY_DSN,
    tracesSampleRate: 0.1,
  },
};