You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Tauri集成Discord.JS报Big integer literals不可用错误咨询

结论

Tauri 和 discord.js 可以搭配使用,不需要强制拆分为两个独立项目。你遇到的 BigInt 报错是构建配置位置错误导致的,不是二者存在底层兼容性冲突。

报错原因

你之前修改 tsconfig.json 中 compilerOptions.target 不生效的核心原因是:Vite 内部使用 esbuild 转译 node_modules 目录下的依赖,tsconfig 的配置仅作用于你自己编写的 TS/TSX 源码,不会覆盖 esbuild 的默认构建目标。
discord.js v13 及以上版本强依赖 BigInt 特性,而 Vite 默认适配的低版本 Webview 环境(chrome87、edge88、es2019、firefox78、safari13.1)不支持 BigInt 字面量,因此触发构建错误。
额外注意:discord.js 是 Node.js 原生生态模块,依赖 Node 内置的 net、tls 等系统 API,不能直接在 Tauri 前端渲染进程(React 代码运行的 Webview 环境)中执行机器人逻辑,这是环境约束,和 BigInt 报错无关。

解决步骤
  • 修改 Vite 构建配置,统一全链路构建目标为 ES2020(原生支持 BigInt)。打开项目根目录的 vite.config.ts,补充如下配置:
import { defineConfig } from 'vite'
import react from '@vitejs/plugin-react'

export default defineConfig({
  plugins: [react()],
  esbuild: {
    target: 'es2020'
  },
  build: {
    target: 'es2020'
  },
  optimizeDeps: {
    esbuildOptions: {
      target: 'es2020'
    }
  }
})
  • 检查 browserslist 配置。如果 package.json 中存在 browserslist 字段,或者项目根目录有 .browserslistrc 文件,需要将目标版本调整为支持 BigInt 的最低版本及以上,避免 Vite 读取该配置覆盖手动设置的构建目标,参考配置:
"browserslist": [
  "chrome >= 89",
  "edge >= 89",
  "firefox >= 88",
  "safari >= 14"
]
  • 调整 discord.js 逻辑的运行位置:
    不要在 React 组件/前端代码中直接引入 discord.js 初始化机器人。如果不想拆分仓库,可以在项目内单独维护一个 Node.js 入口文件编写所有机器人逻辑:开发阶段用 concurrently 同时启动 Vite 开发服务和 Node 机器人进程;打包时将 Node 脚本作为外部资源打包进 Tauri 安装包,运行时通过 Tauri 的 shell 能力拉起本地 Node 进程,前端面板通过 Tauri 事件系统和机器人逻辑通信即可。
    如果你需要机器人独立于桌面端运行(比如支持服务器部署、多端接入),再考虑拆分独立的机器人服务项目,这属于架构选型选择,不是技术强制要求。
补充说明

网上搜到的浏览器环境运行 discord.js 的过时 issue 均针对纯网页场景,Tauri 具备本地系统调用能力,不需要强行把 discord.js 打包进 Webview 沙箱中运行,单仓库完全可以支撑整个应用的开发。

内容的提问来源于stack exchange,提问作者none

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.03 16:15:52