使用 Angular 启动虚拟机 2
Start Virtual Machine with Angular 2
是否可以从 Web 应用程序启动 Virtual Box VM?
我有一个安装了 ubuntu 的虚拟机,在 Windows 上作为主机。我有一个 Angular (4) 应用程序,我想从中启动一个虚拟机。重点是,在 Windows 中的 Web 应用程序之前启动虚拟机(Angular 应用程序和 Windows 中的 VM 运行 作为主机)。
要从命令行启动虚拟机,我通常使用类似的东西:
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",
我试图逃脱反击,因为我在 windows。
"startBackend": "'C:\Program Files\Oracle\VirtualBox\VBoxManage.exe' startvm virtualMachineName",
但也没有用。
这可能吗?还有其他选择吗?
我目前 运行 类似
npm run electron-build
我将 ng build 与脚本结合起来启动 electron,因为我的应用程序在 electron 中运行。我应该直接用 npm 启动 VM 吗?我该怎么做?
@Zlatko 提供的代码完美运行,但现在我有另一个问题。
node-virtualbox 库当然只适用于 VirtualBox VM,但是其他类型的 VM,比如 VMware 呢?
到目前为止,我尝试了 node-vm运行,但我总是得到:
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.
是否可以从 Web 应用程序启动 Virtual Box VM?
我有一个安装了 ubuntu 的虚拟机,在 Windows 上作为主机。我有一个 Angular (4) 应用程序,我想从中启动一个虚拟机。重点是,在 Windows 中的 Web 应用程序之前启动虚拟机(Angular 应用程序和 Windows 中的 VM 运行 作为主机)。
要从命令行启动虚拟机,我通常使用类似的东西:
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",
我试图逃脱反击,因为我在 windows。
"startBackend": "'C:\Program Files\Oracle\VirtualBox\VBoxManage.exe' startvm virtualMachineName",
但也没有用。
这可能吗?还有其他选择吗?
我目前 运行 类似
npm run electron-build
我将 ng build 与脚本结合起来启动 electron,因为我的应用程序在 electron 中运行。我应该直接用 npm 启动 VM 吗?我该怎么做?
@Zlatko 提供的代码完美运行,但现在我有另一个问题。
node-virtualbox 库当然只适用于 VirtualBox VM,但是其他类型的 VM,比如 VMware 呢?
到目前为止,我尝试了 node-vm运行,但我总是得到:
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.