将electron-webpack渲染器配置为与nodeIntegration: false一起使用

12

我试图配置 electron-webpack 的渲染器构建设置,使其在 nodeIntegration 设置为 false 的浏览器窗口中工作。这意味着 Node.js API 不可用,导致以下问题:

  • webpack 似乎假定已经有实现了 require,因此没有将其自己的实现包含在生成的捆绑包中,而是仅将捆绑定义添加到 module.exports(当加载捆绑包时会导致 module 未定义的错误)。

  • html-webpack-plugin 被用来生成 index.html 文件,并在捆绑之前将 <script>require("source-map-support/source-map-support.js").install()</script> 添加到输出中。需要将此行移到捆绑加载线之后,但是我没有找到任何方法来实现这一点。

我尝试在我的 package.json 中进行以下设置:

"electronWebpack": {
  "renderer": {
    "webpackConfig": "renderer.additions.webpack.js"
  }
}

包含renderer.additions.webpack.js文件的内容:

module.exports = {
    target: 'web',          // node integration is turned off, so use standard web settings.
    externals: ['electron'] // do not rely on ability to load code externally: only specifically known-preloaded modules are to be excluded from the package
}

但似乎这并没有改变任何事情。有什么建议可以让它起作用吗?


4
有解决办法吗?我遇到了同样的问题。 - undefined
找到了这个gist https://gist.github.com/earksiinni/053470a04defc6d7dfaacd5e5a073b15,但在编译生产环境时并没有帮助。 - undefined
1个回答

0
如果我理解正确的话,electron-webpack是一个用于将Electron应用程序与Webpack连接的模板。看起来这个项目目前处于维护模式,不活跃。
我创建了一个Electron和Webpack的模板(尽管当前版本与最新的Electron框架版本有些过时),它仍然可以工作,并可以作为起点使用。设置这个连接涉及到很多文件,比在这个stackoverflow答案中提供的信息更多,所以我会指向这个存储库:secure-electron-template

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接