我无法在Electron的webFrame的IsolatedWorld中使用Node的需求

时间:2018-08-09 11:23:39

标签: node.js electron

Electron: ^2.0.2 Webpack: ^4.10.2

在其中一个渲染器进程中,我正在使用Electron的webview

<webview
    src="www.google.com"
    autosize
    allowpopups
    webpreferences="contextIsolation=yes, nativeWindowOpen=yes" 
    preload="someFile.js"
    plugins>
</webview>

现在,在preload文件中,我正在使用Electron的webFrame创建一个Isolated Context

import { webFrame, ipcRenderer } from 'electron';

webFrame.executeJavaScriptInIsolatedWorld(
  worldId,
  [
    {
      code: code, // code in stringified form (contains usage of Node APIs)
      url: url
    }
  ]);

使用webpack捆绑了预加载文件,这里是webpack configuration

const path = require('path');
const paths = require('./paths');

module.exports = {
  mode: 'production',
  entry: paths.bundleEntry,
  output: {
    path: path.join(paths.appRendererBuild, 'preloads'),
    filename : 'bundleOutput.js'
  },
  target: 'electron-renderer'
};

我能够在Webview的隔离上下文中使用require('electron')(由于Webview的属性webpreferences="contextIsolation=yes, nativeWindowOpen=yes"而创建),但是我无法在使用webFrame.executeJavaScriptInIsolatedWorld运行的代码中使用它

如何在webFrame的隔离上下文中使用Node的API(如require)?

0 个答案:

没有答案