打包Nuxt

npm run build

.output目录为打包的资源,.output目录下一般会生成:

$ ls .output
> nitro.json public server

方案一:通用项目Nginx+PM2部署方式

方案背景:宝塔官方提供的PM2管理器 于2023年12月31日下架,官方建议在【网站->Node项目】使用pm2。但是自定义启动命令有bug,配置了自定义命令仍然使用node启动项目(2024/7/4问题仍然存在)。所以现实践方案改为宝塔创建站点(仅使用nginx做反向代理)+终端启动PM2。

一、创建网站目录并部署代码

1、创建网站目录

/www/wwwroot/目录下创建网站目录,习惯用站点域名命名。

2、打包源码上传

在nuxt项目根目录执行npm run build,把打包后的.output文件夹内全部内容上传到网站目录。

3、创建ecosystem.config.js

在项目站点文件夹根目录下,创建ecosystem.config.js

Untitled

module.exports = {
  apps: [
    {
      name: 'nuxt-web',
      port: '3000',
      exec_mode: 'cluster',
      instances: 'max',
      script: './server/index.mjs',
      env: {
          NODE_ENV: 'production'
      }
    }
  ]
}

注意:

  1. port端口不可以系统端口重复
  2. name为项目名称,pm2启动的站点名,建议系统唯一
  3. 确保script运行js文件存在,可以使用绝对路径

二、检查宝塔环境