使用Express部署Nuxt.js应用程序的推荐方法

使用Express部署Nuxt.js应用程序的推荐方法,express,gitlab-ci,nuxt.js,Express,Gitlab Ci,Nuxt.js,我正在研究将Nuxt.js用于一个新的Web应用程序,该应用程序在项目本身中附加了一个Express server/API。我已经用npx create numxt app命令创建了Nuxt.js应用程序,并选择Express作为“自定义服务器框架” 当使用开发环境(npm-run-dev)时,它就像一个魔咒。现在,我想将应用程序部署到使用Gitlab CI运行pm2的服务器上。我很难找到正确的部署应用程序的方法,因为我认为我不应该将源代码“上传”到服务器,然后运行必要的命令,如npm run

我正在研究将Nuxt.js用于一个新的Web应用程序,该应用程序在项目本身中附加了一个Express server/API。我已经用npx create numxt app命令创建了Nuxt.js应用程序,并选择Express作为“自定义服务器框架”

当使用开发环境(
npm-run-dev
)时,它就像一个魔咒。现在,我想将应用程序部署到使用Gitlab CI运行pm2的服务器上。我很难找到正确的部署应用程序的方法,因为我认为我不应该将源代码“上传”到服务器,然后运行必要的命令,如
npm run build
npm start
。那么,在服务器上部署这个应用程序的“正确方法”是什么呢

我有SSH访问服务器的权限,我想在那里部署这个应用程序和API。服务器正在运行pm2以管理节点进程

此外,源代码位于Gitlab服务器上的存储库中,其中有一个Gitlab CI运行程序可用。当前的gitlab-ci.yml执行以下操作:

  • npm安装
  • npm运行构建
  • lftp
    dist
    文件夹发送到服务器
对于SPA,只构建客户端,而不构建服务器/API。在我看来,我们现在有一个肮脏的解决办法,但效果不太好,可以做到以下几点:

  • npm安装
  • npm运行构建
  • 将整个项目镜像到服务器
  • 在pm2中使用监视程序来检测文件中的更改
  • 再次构建项目
看起来它没有按预期的那样工作,我感觉我们正在制造问题,而不是以正确的方式解决部署问题。我们不使用Heroku、Google或任何其他服务来托管该应用程序,它基本上只是一个带有SSH访问的网络托管