gpt4 book ai didi

angular - 使用Angular 2启动虚拟机

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

是否可以从Web应用程序启动Virtual Box VM?

我有一个安装了ubuntu的虚拟机,在Windows上作为主机。我有一个Angular(4)应用程序,我想从中启动VM。关键是要在Windows中的Web应用程序(Angular应用程序和VM作为主机在Windows中运行)之前启动虚拟机。

要从命令行启动虚拟机,我通常使用以下命令:

C:/Program Files/Oracle/VirtualBox/VBoxManage.exe' startvm virtualMachineName



因此,我认为在json包中使用同一行会起作用:
"ng": "ng",
"start": "ng serve",
"startBackend": "'C:/Program Files/Oracle/VirtualBox/VBoxManage.exe' startvm virtualMachineName",
....
"build": "startBackend && ng build --prod",

我试图绕过后挡板,因为我在 window 上。
 "startBackend": "'C:\\Program Files\\Oracle\\VirtualBox\\VBoxManage.exe' startvm virtualMachineName",

但也没有用

这有可能吗?还有其他选择吗?

我目前正在运行类似

npm run electron-build



当我的应用程序在 Electron 作品中工作时,我将ng build与脚本结合起来以启动 Electron 作品。然后,我应该直接使用npm启动VM吗?我怎样才能做到这一点 ?

@Zlatko提供的代码可以完美地工作,但是现在我还有另一个问题。

当然,node-virtualbox库仅适用于VirtualBox VM,但是其他类型的VM(如VMware)又如何呢?

到目前为止,我尝试使用node-vmrun,但是我总是得到:

vm run not found or false

最佳答案

您可以编写一个小脚本,例如在项目的tools目录中使用virtualbox包。

像这样的东西:

const virtualbox = require('virtualbox');
virtualbox.start(process.env.VBOX_MACHINE_NAME, (err) => {
if (err) {
console.log('Error starting machine', err);
process.exit(1);
}
process.exit();
}

然后将其添加到您的脚本中:
"startBackend": "node tools/start-vm.js",
"start": "npm run startBackend && ng build"

注意 process.exit()process.exit(1)-首先,您干净地退出,并且ng构建将运行。使用第二个(给它一个正整数参数),您将在VM启动过程中发出错误信号,因此您无需运行ng build。

关于angular - 使用Angular 2启动虚拟机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51499900/

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