gpt4 book ai didi

dojo - 如何在 Electron 应用程序中使用 Dojo Toolkit?

转载 作者:行者123 更新时间:2023-12-03 12:29:56 25 4
gpt4 key购买 nike

我正在探索 Electron,但遇到了障碍。我不知道如何加载 Dojo Toolkit并在 Electron 中使用它。

例如,下面是 Dojo 的简单“Hello World”:

<!DOCTYPE html>
<html>
<head>
<title>Tutorial: Hello Dojo!</title>
</head>
<body>
<h1 id="greeting">Hello</h1>
<!-- load Dojo -->
<script src="//ajax.googleapis.com/ajax/libs/dojo/1.10.4/dojo/dojo.js"
data-dojo-config="async: true"></script>
<script>
require([
'dojo/dom',
'dojo/dom-construct'
], function (dom, domConstruct) {
var greetingNode = dom.byId('greeting');
domConstruct.place('<em> Dojo!</em>', greetingNode);
});
</script>
</body>
</html>

这在浏览器中运行良好,但在 Electron 中根本不起作用。经过几个小时的谷歌搜索并尝试了 50 种不同的实验,我一无所获。

有人可以启发我吗?

最佳答案

虽然您可以禁用 node-integration正如 Shwany 所说,我相信这将有效地呈现 ipc模块无用,这可能会造成不良限制,因为您将无法在主进程和渲染器进程之间进行通信。

但是,有可能通过一些小技巧让 Dojo 与 Electron 配合得很好。在您的入口页面中,您只需要做几件事。

首先,强制 host-node具有 false 的功能.这可以通过在 dojoConfig.has 中设置来完成,例如:

var dojoConfig = {
async: true,
has: {
'host-node': false
}
}

其次,正如 Shwany 指出的,Dojo 将看到已经存在的 require ,因此我们需要在加载 Dojo 之前将其移出:
// Move Electron's require out before loading Dojo
window.electronRequire = require;
delete window.require;

加载 dojo.js 后,如果您愿意,您可以将 Dojo 的 require 移到其他地方,并将 Electron 移到后面。您是否要这样做可能取决于您打算如何对应用程序的客户端进行编码。从表面上看,Dojo 的全局 require永远不需要,因为您可以请求上下文相关的 require通过 'require' 在任何定义的模块中模块标识。

如果您想查看一个包含 Dojo 的脚手架式 Electron 应用程序,我创建了一个 boilerplate几周前(尽管被告知它目前依赖于 Electron package 器的一个分支)。如果你想看一个更成熟的 Electron/Dojo 应用程序的例子,我写了一个名为 Nukebox 的音乐播放器。几个月前,它使用了 Dojo 和 dgrid(尽管它的脚手架与较新的样板有点不同)。

关于dojo - 如何在 Electron 应用程序中使用 Dojo Toolkit?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31060012/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com