Skip to content

生产环境的配置指南

本项目目前是使用 Nginxpm2 实现部署的,我们已经在后端项目中写好了 pm2 的配置文件

javascript
const path = require('path')

module.exports = {
  apps: [
    {
      name: 'kun-galgame-koa', // Application name
      script: './dist/kun.js', // Startup script (compiled JavaScript file)
      cwd: path.join(__dirname), // Application directory
      instances: 1, // Number of instances to start
      autorestart: true, // Automatically restart
      watch: false, // Watch for file changes and auto-restart
      max_memory_restart: '1G', // Restart when memory usage exceeds 1GB
      env: {
        NODE_ENV: 'production', // Set environment variable
      },
    },
  ],
}

注释已经说明了我们的配置

前端生产环境部署

我们将前端项目 clone 下来,安装好包,然后在终端执行 vite build 命令,前端的所有文件将会被打包进根目录的 dist 文件夹内

这个 dist 文件夹内目前应该含有以下内容

  • kun. 资源文件夹,包含了打包后的 css 以及 js 等文件
  • index.html 程序的入口文件
  • robots.txt 爬虫的索引文件

部署的时候,需要将入口的 html 文件请求使用 nginx 转发给后端

后端生产环境部署

我们已经配置好了 Webpack 打包配置,需要做的是运行 pnpm build 来使用我们在 package.json 中定义的脚本

目前我们定义了这些脚本

json
  "scripts": {
    "dev": "cross-env NODE_ENV=development webpack --watch --config ./config/webpack.config.dev.js",
    "build": "cross-env NODE_ENV=production webpack --config ./config/webpack.config.prod.js",
    "build:dev": "cross-env NODE_ENV=development webpack --config ./config/webpack.config.prod.js",
    "start": "cross-env NODE_ENV=production pm2 start ecosystem.config.js",
    "kill": "pm2 delete kun-galgame-koa"
  },

可以看到我们根目录下的 config 文件夹,这是 Webpack 的配置文件夹,里面有四个文件

  • utils.js 一些工具函数和变量
  • webpack.config.base.js webpack 的基本配置项,这些项目在生产环境和开发环境是的打包是通用的
  • webpack.config.dev.js webpack 的开发配置项,这些配置仅作用于开发环境
  • webpack.config.prod.js webpack 的生产配置项,这些配置仅在生产环境生效

步骤

在了解了上面的介绍后,可以通过以下方法配置后端生产环境

  • pnpm build - 这将会产生一个 dist 文件夹,里面有一个叫 kun.js 的文件,这就是后端的启动程序
  • pnpm start - 这将会使用 pm2 根据 kun.js 启动一个服务,这个服务会一直运行,可以使用 pm2 查看服务目前的状态

Nginx

由于涉及到服务器端的部署,Nginx 的部署不便于展示,如果想要学习,请加入我们的开发群组

部署的核心就是请求转发和反向代理,配置也都是基础的 nginx 配置,Google 以下 Nginx with pm2 就可以学习了