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

Angular开发的Electron项目打包exe后提示找不到typeorm模块如何解决

修复方案

该错误为Electron打包后未正确包含typeorm生产依赖导致,可按以下步骤逐一排查修复:

1. 确认依赖安装属性

  • 确保typeorm安装在生产依赖而非开发依赖中,执行以下命令重新安装:
    npm install typeorm --save
    若使用yarn则执行:
    yarn add typeorm
  • 不要使用npm link软链接方式安装typeorm,软链接会在打包后失效,必须直接安装到项目本地node_modules目录。

2. 调整Electron打包配置

若使用electron-builder打包

  • 在package.json的build配置中添加files字段,明确打包时包含node_modules核心依赖:
    "build": {
      "files": [
        "dist/**/*",
        "node_modules/**/*",
        "package.json"
      ],
      "asarUnpack": ["node_modules/typeorm/**/*"]
    }
    
    其中asarUnpack配置是为了避免asar压缩时意外剔除typeorm相关文件。
  • 检查是否有配置nodeModules排除规则,若有则将typeorm从排除列表中移除。

若使用electron-packager打包

  • 打包命令添加--no-prune参数,避免打包时自动删除生产依赖:
    electron-packager . 你的项目名 --no-prune --platform=win32 --arch=x64

3. 修正代码及Angular构建配置

  • 检查angular.json的构建配置,不要将typeorm加入externalDependencies排除列表,避免Angular构建时自动剥离该依赖。
  • 如果在渲染进程中调用typeorm,需要在主进程创建窗口的配置中开启Node集成(仅建议内网自用项目开启,公开发行项目建议将typeorm调用逻辑迁移到主进程,通过IPC通信调用):
    new BrowserWindow({
      width: 1200,
      height: 800,
      webPreferences: {
        nodeIntegration: true,
        contextIsolation: false
      }
    })
    
  • 引入typeorm时可使用绝对路径引入,避免模块解析失败:
    const typeorm = require(require('path').resolve(__dirname, 'node_modules/typeorm'))

4. 打包前预校验

  • 打包前先执行npm prune --production清理所有开发依赖,之后直接用electron .命令本地启动项目,若本地启动就报相同错误,先解决本地运行的依赖问题再执行打包操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 00:39:02