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

Electron-vite项目主进程预编译阶段导入自定义JS文件失败求助

Electron-vite项目主进程预编译阶段导入自定义JS文件失败求助

嗨,我看你遇到的这个模块找不到问题在electron-vite项目里挺常见的,别着急,咱们一步步拆解问题来解决!

先复盘下你的操作步骤,确保我没理解错:

  • 用 pnpm create @quick-start/electron 初始化了一个electron-vite项目
  • 在 src/main/ 目录下(和index.js同级)新建了getAuthKey.js文件
  • 在src/main/index.js里通过 const getAuthKey = require("./getAuthKey"); 导入这个自定义文件
  • 启动项目后抛出错误:

    App threw an error during load
    Error: Cannot find module './getAuthKey.js'

结合你的操作和报错信息,我整理了几个最可能的原因和对应的解决方案:

1. 先排查最基础的路径/文件名问题

别笑,这真的是最容易踩的坑!先确认:

  • getAuthKey.js确实在src/main/目录下,没不小心放到src/renderer/或者其他子文件夹里
  • 文件名大小写完全匹配——比如你代码里写的是getAuthKey,实际文件别写成GetAuthKey.js,Windows系统不区分大小写,但electron-vite的编译环境会严格校验

2. 检查electron-vite的主进程编译配置

electron-vite默认会对主进程文件做预编译,如果你的自定义文件没被纳入编译范围,就会出现找不到模块的情况。打开项目根目录的electron.vite.config.js,检查主进程的配置:

确保主进程配置里包含了src/main下的所有JS文件,比如:

export default defineConfig({
  main: {
    entry: 'src/main/index.js',
    // 新增include规则,让vite识别到你新建的文件
    include: ['src/main/**/*.js']
  },
  // ...其他渲染进程、构建配置
})

如果原来的配置没有include字段,加上它之后重启项目试试。

3. 统一模块导入方式

看你的index.js里已经用了ES模块的import语法(比如导入electron的app、BrowserWindow),但导入自定义文件用了require,混用两种模块语法可能导致兼容性问题。

你可以改成ES模块的导入方式:

// 替换原来的require语句
import getAuthKey from './getAuthKey.js'

同时要确保getAuthKey.js里用ES模块的方式导出内容,比如:

// getAuthKey.js示例
export default function getAuthKey() {
  // 你的业务逻辑代码
}

4. 清理缓存重试

如果以上方法都没用,试试清理缓存:

  • 删除项目根目录的node_modules、dist、.electron-vite文件夹
  • 重新执行 pnpm install 安装依赖
  • 再启动项目 pnpm dev

备注:内容来源于stack exchange,提问作者little weilai

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.16 09:13:13