通过HTTP服务电子渲染器进程并使用require

时间:2017-02-19 15:02:02

标签: javascript requirejs electron

我正在尝试通过从主进程启动的HTTP服务器上提供HTML和渲染器javascript文件来制作我的Electron应用程序的移动版本。

我的渲染器进程javascript大量使用require。它们在Electron内部工作正常。在Electron之外,它们不是因为window.require没有被定义。

所以我尝试重写一些代码,以便它可以使用required或以前加载到<script>标记中的模块。

这是我到目前为止所尝试的内容:

// Initial situation:
const $ = require('jQuery');
// on mobile : require is not defined

// Try 1
if (window.require) {
  const $ = require('jQuery');
}
// doesn't work: $ is only defined in the scope of the if

// Try 2
let $;
if (window.require) {
  $ = require('jQuery');
}
// on mobile : $ was defined from jQuery being loaded from a script tag,
// but I just overwrote it with undefined

// Try 3
let $;
if (window.require) {
  $ = require('jQuery');
}
else {
  $ = window.$;
}
// on mobile : window.$ is undefined

有人能看到我错过的东西吗?或者也许只是告诉我如何在非电子页面上设置require

1 个答案:

答案 0 :(得分:0)

我最终做了以下事情:

if (window.require) {
  window.$ = require('jQuery');
}

然后在整个渲染器过程中使用window.$而不是$