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

suz*_*uki 10 node.js typescript webpack electron electron-forge

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

\n
npx create-electron-app my-new-app --template=typescript-webpack\n
Run Code Online (Sandbox Code Playgroud)\n

之后,我跑

\n
npm run start\n
Run Code Online (Sandbox Code Playgroud)\n

insidesmy-new-app文件夹,命令窗口中弹出以下错误消息

\n
$ npm run start\n\n> my-new-app@1.0.0 start\n> electron-forge start\n\n\xe2\x9c\x94 Checking your system\n\xe2\x9c\x94 Locating Application\n\nAn unhandled rejection has occurred inside Forge:\nError: Expected plugin to either be a plugin instance or a { name, config } object but found @electron-forge/plugin-webpack,[object Object]\n\nElectron Forge was terminated. Location:\n{}\n
Run Code Online (Sandbox Code Playgroud)\n

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

\n
npm audit\n
Run Code Online (Sandbox Code Playgroud)\n

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

\n
got  <11.8.5 \nSeverity: moderate\n
Run Code Online (Sandbox Code Playgroud)\n

\n
minimatch  <3.0.5\nSeverity: high\n
Run Code Online (Sandbox Code Playgroud)\n

它无法通过npm audit fix和修复npm audit fix --forcepackage.json因此,我通过重写和修复了这个错误package-lock.json。然后我删除node_modules文件夹并运行npm install。\n这些漏洞消失了,但在我运行之后,我的问题又出现了npm run start

\n

我认为问题涉及到@electron-forge/plugin-webpack。\n但是,我不知道如何解决它。

\n

提前致谢。

\n

小智 19

package.json 中 options下的plugins 字段config.forge是按以下结构生成的:

"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"
            }
          }
        ]
      }
    }
  ]
]
Run Code Online (Sandbox Code Playgroud)

name将该结构更改为具有和字段的对象config

"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"
            }
          }
        ]
      }
    }
  }
]
Run Code Online (Sandbox Code Playgroud)