是否可以让 VS 代码在打开项目时运行多个命令并启动一个(或多个)应用程序?
我正在做的理想情况是:
目标是在 VS 代码中打开项目并开始工作,而不是运行几个设置步骤。
我的 Node 应用程序使用 Mongo 更改流,并且该应用程序在生产中运行 3 个以上实例(最终会更多,因此随着它的增长,这将成为一个更大的问题)。因此,当发生变更时,变更流功能运行的次数与进程的数量一样多。
如何进行设置以使更改流仅运行一次?
这是我所得到的:
const options = { fullDocument: "updateLookup" };
const filter = [
{
$match: {
$and: [
{ "updateDescription.updatedFields.sites": { $exists: true } },
{ operationType: "update" }
]
}
}
];
const sitesStream = Client.watch(sitesFilter, options);
// Start listening to site stream
sitesStream.on("change", async change => {
console.log("in site change stream", change);
console.log(
"in site change stream, update desc",
change.updateDescription
);
// Do work...
console.log("site change stream done.");
return;
});
Run Code Online (Sandbox Code Playgroud) 我使用 PM2 进行部署/流程管理,并且该应用程序处理大量 DNS 任务,因此如果我从远程服务器运行开发应用程序,并在保存时进行 Rsyncing 或 SFTPing(仍在整理中),则最简单。
在这种情况下,开发应用程序与生产应用程序位于同一虚拟机上是理想的情况。但是,PM2 部署配置文件 ( ) 的结构ecosystem.config.js似乎无法实现这一点,因为当我运行 时pm2 deploy development,开发版本会超越 VM 上的生产过程。
这是我所拥有的:
module.exports = {
apps: [
{
name: "APP NAME",
script: "app.js",
env_development: {
NODE_ENV: "development",
...
},
env_production: {
NODE_ENV: "production",
...
}
}
],
deploy: {
production: {
user: "user",
host: ["123.123.123.123"],
ref: "origin/master",
repo: "git@gitlab.com:me/repo.git",
path: "/var/www/app",
"post-deploy":
"npm install && pm2 reload ecosystem.config.js --env production"
},
development: {
user: "user",
host: ["123.123.123.123"],
ref: "origin/master", …Run Code Online (Sandbox Code Playgroud)