构建后,用于电子的外部Webpack模块不起作用

时间:2019-11-18 20:08:03

标签: webpack electron electron-builder

我正在尝试在我的Electron应用程序中使用archiver模块。起初这会在开发过程中引起错误,因为我没有将其添加到我的webpack外部组件中:

  chainWebpack: config => {
    config.externals({
      archiver: "require('archiver')"
    })
  },

这在开发中起作用,但事实证明,在构建用于生产的应用程序后,在启动该应用程序后出现了一个新错误:

Uncaught Error: Cannot find module 'archiver'
Require stack:
- C:\Users\user\workspace\my-app\dist_electron\win-unpacked\resources\electron.asar\renderer\init.js
    at Module._resolveFilename (internal/modules/cjs/loader.js:627)
    at Function.Module._resolveFilename (C:\Users\user\workspace\my-app\dist_electron\win-unpacked\resources\electron.asar\common\reset-search-paths.js:41)
    at Function.Module._load (internal/modules/cjs/loader.js:531)
    at Module.require (internal/modules/cjs/loader.js:685)
    at require (internal/modules/cjs/helpers.js:16)
    at Object.4f22 (app.107e8b71.js:1)
    at o (app.107e8b71.js:1)
    at Object.d7c3 (app.107e8b71.js:1)
    at o (app.107e8b71.js:1)
    at Module.f8da (app.107e8b71.js:1)

我该如何解决?

我正在使用vue-cli-plugin-electron-builder来构建我的Electron应用。

1 个答案:

答案 0 :(得分:0)

问题是我在vue.config.js中使用了此

   chainWebpack: config => {
     config.externals({
        archiver: "require('archiver')"
     })
   }

但是因为我有vue-cli-plugin-electron-builder,所以我应该使用:

  pluginOptions: {
    electronBuilder: {
      externals: ['archiver'],
      builderOptions: {
      etc...
      }
    }
  }