我知道我可以在使用电子运行时添加--js-flags="--max-old-space-size=4096"
。但是我应该把这个参数放在电子生成器的构建配置中?
答案 0 :(得分:9)
在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', () => {
// ...
});
答案 1 :(得分:0)
仅想补充一点,就我而言,max-old-space-size
标志仅在将其放入Webview的“ preload”脚本时才成功应用,例如(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")
的执行之间可能存在某种竞争条件-有时,上面的代码适用于主渲染器进程(一个不在网络视图中),而其他时候则没有。
所以基本上:如果您想确保命令行开关能够正常工作,请在给定的浏览器窗口/网络视图的预加载脚本中应用它们。