首页 > 解决方案 > 更新使用 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 应用程序吗?

标签: javascriptnode.jsgitpm2

解决方案


推荐阅读