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

TypeScript项目出现exports未定义错误,寻求解决方法

解决TypeScript项目中“exports is not defined”错误

你遇到的错误是因为TypeScript按CommonJS模块规则编译代码,但Electron渲染进程的浏览器环境不支持CommonJS的exports变量。以下是两种可行的解决办法:

方法1:切换为ES模块

  1. 修改tsconfig.json,将模块编译规则改为ES标准:
{
  "compilerOptions": {
    "module": "ESNext",
    "moduleResolution": "node",
    "noImplicitAny": true,
    "sourceMap": false,
    "outDir": "dist",
    "baseUrl": ".",
    "paths": {
      "*": ["node_modules/*"]
    }
  },
  "include": [
    "src/**/*"
  ]
}
  1. 在加载渲染进程代码的HTML文件中,给script标签添加type="module"属性,告诉浏览器以ES模块方式加载:
<script type="module" src="./dist/renderer.js"></script>

方法2:使用打包工具处理模块兼容

如果需要保留CommonJS模块配置,或者要处理复杂依赖(比如你用到的xlsx),可以用打包工具(如Vite、Webpack)将代码转译为浏览器兼容的格式:

  1. 安装Vite及Electron插件:
npm install vite vite-plugin-electron -D
  1. 创建vite.config.js,配置项目入口与打包规则,示例配置:
import { defineConfig } from 'vite'
import electron from 'vite-plugin-electron'

export default defineConfig({
  plugins: [
    electron({
      main: {
        entry: 'src/main.js'
      },
      renderer: {
        entry: 'src/renderer.ts'
      }
    })
  ]
})
  1. 修改package.json的启动脚本,通过Vite打包后启动Electron:
{
  "scripts": {
    "dev": "vite"
  }
}

额外提示:你的Upload.ts在模块顶部直接获取DOM元素,可能会因为DOM未加载完成导致null,建议将DOM获取逻辑放到函数内部或DOMContentLoaded事件回调中。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 04:49:53