javascript - 更新使用 Pm2 作为 Windows 服务启动的 Nodejs 应用程序
问题描述
我正在用 nodejs 编写一个小应用程序。
这个应用程序应该作为 Windows 服务执行(所以我不能使用 electron 或其他,因为即使用户没有登录它也应该是活动的),所以我想使用PM2。它启动并且工作正常,但我现在的问题是我的NodeJS应用程序的更新。
我的应用程序将发布到多台 PC,我不想一一更新。
是的,我有一个可以读取的存储库,因此我可以在我的应用程序中创建一个函数,在该函数中,我可以按照既定的时间间隔访问我的存储库并拉取。
现在我已经在我的NodeJs应用程序的 packages.json 中创建了一个脚本命令,例如:
git pull //myrepourl.git 来源
在我的index.js中,一个函数如下:
function updateApp(){
return new Promise((resolve,reject)=>{
exec('cd app_path && npm run prod_update', (error, stdout, stderr) => {
if (error) {
console.error(`exec error: ${error}`);
reject();
}
resolve();
});
})
}
setInterval( ()=>{
updateApp();
console.log("------ Updated ---------")
},60*60*1000);
但是这种方式并不能说服我,因为实际上我的仓库是私有的,然后我必须在应用程序中公开我的凭据 git,而不考虑 node_modules 的问题。
那么还有其他方法可以更新在 Windows 上使用 PM2 作为服务启动的 Nodejs 应用程序吗?
解决方案
推荐阅读
- c++ - 静态数据成员的问题 - 修复链接错误会导致编译器错误
- jboss - Wildfly:集群上的单例部署| 选择服务器组中的两台服务器
- hadoop - Hbse:如何使用两个不同的标准进行行键过滤
- dialogflow-es - 您如何阅读/查询 dialogflow-fulfillment API V2 中的响应正文?
- javascript - Material-Table 检测悬停在行上
- .htaccess - 具有 htaccess 和路径结构的 Dynamik 重定向
- sql - 不等于排除的 Django 模型查询
- linux - 用 0xFF 替换部分文件?
- java - 需要了解多线程环境下AtomicInteger代码使用中的问题
- django - 如何正确将选中的用户添加到某个组中?