开发者问题收集

Electron 模板(Typescript + Webpack)中的这个 Electron Forge 错误是什么?

2022-10-27
4368

我按照 Electron Forge 页面 安装了 Electron 的模板。

npx create-electron-app my-new-app --template=typescript-webpack

之后,我在 my-new-app 文件夹中运行

npm run start

命令窗口中弹出以下错误消息

$ npm run start

> [email protected] start
> electron-forge start

✔ Checking your system
✔ Locating Application

An unhandled rejection has occurred inside Forge:
Error: Expected plugin to either be a plugin instance or a { name, config } object but found @electron-forge/plugin-webpack,[object Object]

Electron Forge was terminated. Location:
{}

我用 Google 搜索了一下,但没有人遇到过同样的错误。 一周前,我可以使用上述模板而不会出现错误消息。因此,我复制了一周前创建的项目并运行。成功了。但是,我运行了以下命令

npm audit

有 22 个漏洞(3 个中等,19 个高)。 错误是

got  <11.8.5 
Severity: moderate

minimatch  <3.0.5
Severity: high

无法通过 npm audit fixnpm audit fix --force 修复。因此,我通过重写 package.jsonpackage-lock.json 修复了此错误。然后我删除 node_modules 文件夹并运行 npm install 。 这些漏洞已经消失,但在运行 npm run start 后,上述问题再次出现。

我认为问题出在 @electron-forge/plugin-webpack 上。 但是,我不知道如何修复它。

提前致谢。

3个回答

package.json 中 config.forge 选项下的 plugins 字段生成结构如下:

"plugins": [
  [
    "@electron-forge/plugin-webpack",
    {
      "mainConfig": "./webpack.main.config.js",
      "renderer": {
        "config": "./webpack.renderer.config.js",
        "entryPoints": [
          {
            "html": "./src/index.html",
            "js": "./src/renderer.ts",
            "name": "main_window",
            "preload": {
              "js": "./src/preload.ts"
            }
          }
        ]
      }
    }
  ]
]

将该结构更改为具有 nameconfig 字段的对象:

"plugins": [
  {
    "name": "@electron-forge/plugin-webpack",
    "config": {
      "mainConfig": "./webpack.main.config.js",
      "renderer": {
        "config": "./webpack.renderer.config.js",
        "entryPoints": [
          {
            "html": "./src/index.html",
            "js": "./src/renderer.ts",
            "name": "main_window",
            "preload": {
              "js": "./src/preload.ts"
            }
          }
        ]
      }
    }
  }
]
Vinicius Bazanella
2022-10-27

修改插件语法只能在本地运行时解决问题。 如果使用 npm run make 导出包,它只会显示一个空白屏幕。

如果您遇到此类问题,请尝试 此处 的解决方案

Shanavas P S
2022-10-29

这是 Electron Forge beta 73 或该用户运行的任何版本中的问题 - 该错误现已修复

George Xu
2022-11-05