【发布时间】:2017-10-03 10:17:14
【问题描述】:
电子 1.6.5、Webpack 2.4.1
我将electron-react-boilerplate 与webview 组件一起使用。我在webview 中注入了一个预加载脚本,它执行以下操作:
const { ipcRenderer } = require('electron');
const doSomething = require('./utils/do-some-thing.js');
document.addEventListener('DOMContentLoaded', event => {
doSomeThing()
// tell scraper to get started
ipcRenderer.sendToHost('THING IS DONE', [{ url: document.URL }]);
});
webview 需要将此脚本作为file:// 路径传递,如下所示:
<webview
preload={'./some/folder/preload.js''}
{...props}
/>
问题是我的 webpack 设置没有转换 preload.js,因为它没有通过 require() 显式调用。然后,当我构建应用程序时,路径 ./some/folder/ 不存在。
我尝试设置 webpack 来创建第二个编译脚本,如下所示:
entry: [
'babel-polyfill',
'./app/index',
'./some/folder/preload.js'
],
output: {
path: path.join(__dirname, 'app/dist'),
publicPath: '../dist/'
},
但这会导致JavaScript heap out of memory 错误,这让我相信这是不正确的。
另外:这种方法不会在./dist 文件夹中复制electron,因为它是require() 由preload.js 和index.js 所创建的吗?
【问题讨论】:
-
你最后得到
preload.js被babel转译了吗? -
问题解决了吗?
标签: javascript webpack electron