典型地,在一个电子应用,可以从两个主处理和渲染过程require
节点模块:需要()节点模块通过HTTP服
var myModule = require('my-module');
然而,这并不似乎工作,如果页面通过HTTP而不是从本地文件系统加载。换句话说,如果我打开一个窗口,像这样:
win.loadURL(`file://${__dirname}/index.html`);
我可以require
一个节点模块没有问题。但是,如果我不是开这样的窗口:
win.loadURL(`http://localhost:1234/index.html`);
我再也不能在我的网页require
节点模块 - 我在网页的控制台中看到Uncaught Error: Cannot find module 'my-module'
。在通过HTTP提供的Electron页面中是否有任何方法可以使用节点模块?
一点背景知识:我公司正在建设需要被托管的Web应用程序和的电子壳中的能力的应用程序。为了使这两个环境更简单和一致,我的Electron应用程序启动本地Web服务器并打开托管在http://localhost:1234
处的应用程序。现在,我希望能够使用electron-spell-check-provider
将拼写检查/拼写建议添加到应用程序中。这个模块需要在渲染器进程中导入和初始化,所以我试图在我的网页里面require('electron-spell-check-provider')
,但是这个失败并且出现Cannot find module
错误。
我不确定,但似乎http版本正在获取文件的一些不同的实际路径。尝试通过以下方式更改require语句:=>“require('./electron-spell-check-provider')” –
您是否尝试过:require('electron')。remote.require('electron-spell-check-provider ')'? – ahwayakchih
你最终搞清楚了吗? remote.require()适用于我,但这并不总是一个好的解决方案。任何其他方式来做到这一点? – logidelic