gpt4 book ai didi

angularjs - 如何让 Electron 等待 npm 开始完成

转载 作者:行者123 更新时间:2023-12-03 12:36:00 26 4
gpt4 key购买 nike

我有以下情况:我有一个 Angular CLI 应用程序,它由 npm start 启动。此操作可能需要一些时间才能完成。启动后,应用程序在 localhost:3000 可用。
然后我们有一个 Electron 应用程序(使用 nativefier 模块制作),它使用 url localhost:3000 制作一个应用程序。
当我使用批处理文件启动 Angular 应用程序和并行的 Electron 应用程序时,就会出现问题。显然 Electron 应用程序将显示一个错误,因为 NPM 启动尚未完成。另一方面,我不能按顺序执行 NPM 启动和应用程序,因为最终用户不应该看到 NPM 启动的 CMD 窗口(我用 VBS 脚本隐藏了它)。
理想情况下,最好的解决方案是 Electron 应用程序和 npm 并行启动,并且 Electron 应用程序将在 NPM 启动执行时显示加载屏幕。

我真的不知道如何实现这一目标。

有人可以向我提出解决方案吗?

谢谢
法比奥

最佳答案

我找到的解决方案包括有两个不同的窗口并使用它们,隐藏第一个窗口并在后者准备好时显示第二个窗口......所以,想象一下你想在等待 localhost 准备好时显示 Google.com

const {app, BrowserWindow} = require('electron')

let win
let win2
function createWindow () {
let win = new BrowserWindow({backgroundColor: '#2e2c29'})
win = new BrowserWindow({width: 800, height: 600, show:false})
win2 = new BrowserWindow({width: 800, height: 600})

win.loadURL('http://localhost:3000')
win2.loadURL('http://www.google.com')

win.once('ready-to-show', () => {
win.show()
win2.hide()
win2.close()
})

win.on('closed', () => {

win = null
})
}

app.on('ready', createWindow)

app.on('window-all-closed', () => {

if (process.platform !== 'darwin') {
app.quit()
}
})
app.on('activate', () => {

if (win === null) {
createWindow()
}
})

关于angularjs - 如何让 Electron 等待 npm 开始完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45200629/

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