跳到内容

配置

正如 electron-webpack 可以作为一个简单的模块来满足您的大部分开发需求一样,您也可以根据需要加入您自己的配置。请注意,当使用预期的默认值时,无需进行任何配置。

配置可以在 package.json 中的 electronWebpack 处应用,也可以在单独的 electron-webpack.(json|json5|yml) 中应用。为了本文档的目的,我们将使用 package.json 方法,并且示例将显示适用时的默认值。

可用选项概览

"electronWebpack": {
  "commonSourceDirectory": "src/common",
  "staticSourceDirectory": "src/static",
  "title": true,
  "whiteListedModules": ["foo-ui-library"],

  "main": {
    "extraEntries": ["@/preload.js"],
    "sourceDirectory": "src/main",
    "webpackConfig": "custom.webpack.additions.js"
  },

  "renderer": {
    "dll": ["fooModule"],
    "sourceDirectory": "src/renderer",
    "template": "src/renderer/index.html",
    "webpackConfig": "custom.webpack.additions.js",
    "webpackDllConfig": "custom.webpackDll.additions.js"
  }
}


源目录

定义进程或常用目录的路径,相对于项目的根目录。如果您不希望 electron-webpack 处理打包,则 renderer.sourceDirectory 可以为 null

"electronWebpack": {
  "commonSourceDirectory": "src/common",
  "staticSourceDirectory": "src/static",
  "main": {
    "sourceDirectory": "src/main"
  },
  "renderer": {
    "sourceDirectory": "src/renderer"
  }
}

BrowserWindow 标题

定义默认的 BrowserWindow 标题。 true (默认值):标题根据 package.json 名称或使用 electron-builder 时的 productName 自动设置 String:使用自定义字符串作为标题

"electronWebpack": {
  "title": true,

  /* or */

  "title": "My Custom Title"
}

main 进程的附加入口点

对于那些您需要额外 入口点 的情况。当您需要 BrowserWindow 的预加载脚本时,这可能很有用。

"electronWebpack": {
  "main": {
    "extraEntries": ["@/preload.js"]
  }
}
请注意,您可以使用 @ 别名来引用您的 main.sourceDirectory

Dll bundle splitting

有关更多信息,请参阅 Dll Bundle Splitting

"electronWebpack": {
  "renderer": {
    "dll": ["fooModule"]
  }
}

白名单外部模块

由于 webpack 被设置为以 electron 环境为目标,因此所有模块都被视为 外部模块。不幸的是,在某些情况下,某些模块可能不希望出现这种行为。对于某些提供原始 *.vue 组件的 Vue UI 库,它们将需要被列入白名单。这确保 vue-loader 能够按照 UI 库最初预期的方式编译它们。

"electronWebpack": {
  "whiteListedModules": ["foo-ui-library"]
}

修改后的 Webpack 配置

有关更多信息,请参阅 修改 Webpack 配置

"electronWebpack": {
  "main": {
    "webpackConfig": "custom.additions.webpack.js"
  },

  "renderer": {
    "webpackConfig": "custom.additions.webpack.js",
    "webpackDllConfig": "custom.additions.webpack.js"
  }
}