- 版本:“电子”:“1.6.2”,“电子生成器”:“^16.8.2”,
- 目标:windows x64
我知道我可以--js-flags="--max-old-space-size=4096"
在使用电子运行时添加。但是我应该把这个参数放在电子构建器的构建配置中吗?
我知道我可以--js-flags="--max-old-space-size=4096"
在使用电子运行时添加。但是我应该把这个参数放在电子构建器的构建配置中吗?
在 main.js 中,添加:
app.commandLine.appendSwitch('js-flags', '--max-old-space-size=4096');
根据Supported Chrome Command Line Switches,这应该在ready
事件发出之前调用。例如:
import { app } from "electron";
app.commandLine.appendSwitch('js-flags', '--max-old-space-size=4096');
app.on('ready', () => {
// ...
});
只是想补充一点,就我而言,该max-old-space-size
标志仅在我将其放置在我的 webview 的“预加载”脚本中时才成功应用,如下所示(Start_WebviewPreload.ts):
import {remote} from "electron";
remote.app.commandLine.appendSwitch("js-flags", "--max-old-space-size=8192");
将它放在“main.js”文件(整个程序的入口点)中,没有做任何事情。(我什至使用 Process Hacker 2 检查了命令行参数,在我按照上面提到的移动代码之前,它没有显示任何电子进程具有该标志)
另外,我注意到在命令行标志的设置和执行之间可能存在某种竞争条件app.on("ready")
——有时,上面的代码适用于主渲染器进程(不在-webview),而其他时候则不然。
所以基本上:如果你想确保你的命令行开关工作,在给定的浏览器窗口/网络视图的预加载脚本中应用它们。