打包成静态文件部署方案,实测1核1G都能跑,无需反代和运行PM2

适用于:前端二开,4G运存以下的服务器


本地安装好node环境,进入前端目录运行下面命令:

npm install -g pnpm
pnpm install


备份原来的nuxt.config,复制下面的代码,覆盖到nuxt.config

// https://nuxt.com/docs/api/configuration/nuxt-config


import { loadEnv } from 'vite'
import prismjs from 'vite-plugin-prismjs'
export default defineNuxtConfig({
    rss:false,
    telemetry: false,
    experimental: {
        watcher: 'chokidar'
    },
    app: {
        head: {
           title: 'ChatAix - 智能问答绘图系统',
            meta: [
                { charset: 'utf-8' },
                { name: 'viewport', content: 'width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no' },
                { name: "description", content: "聊天学习交流,免费AI问答功能,答案更精准,实现AI回答轻松获取,智能答案免去千篇一律,自动代码输出,引导程序员、办公人员、学生等写作思路",},
                { name: "keywords", content: "AI, 语言文本处理, 数学计算, 代码编程, AI 工具, AI 绘画, 创造力, 工作效率"},
            ],
            link: [
                { rel: "icon", href: "/favicon.ico", type: 'image/x-icon'},
            ],
        }
    },
    css: [
        '~/assets/css/style.min.css',
        '~/assets/css/main.css',
    ],
    modules: [
        '@pinia/nuxt',
        '@nuxtjs/tailwindcss',
        '@nuxtjs/color-mode',
        '@pinia-plugin-persistedstate/nuxt',
    ],
    runtimeConfig: { // 运行时常量
        public:
            { // 客户端-服务的都能访问
                baseUrl: loadEnv(process.argv[process.argv.length - 1], './env').VITE_SERVER_NAME
            }
    },
    vite: {
        plugins: [
            prismjs({
                // 添加支持的高亮的语言, 如果需要支持全部的话改成这样:  languages: "all"
                languages: ['cpp',
                    'javascript',
                    'bash',
                    'dart',
                    'sql',
                    'css',
                    'html',
                    'java',
                    'json',
                    'sass',
                    'scss',
                    'c',
                    'log',
                    'swift',
                    'md',
                    'nginx',
                    'yaml',
                    'xml',
                    'shell',
                    'ts'
                ],
                // 配置prism插件 toolbar是后面两个插件依赖的插件.
                // show-language: 显示语言名。
                // copy-to-clipboard: 添加复制代码功能。
                plugins: ['toolbar', 'show-language', 'copy-to-clipboard'],
                // 主题名称,支持的主题可以在 node_moduels中安装此库的目录下寻找。
                theme: "tomorrow",
                css: true
            })
        ]
    },
    nitro: {
        devProxy: {
            '/api': {
                target: 'http://127.0.0.11',
                changeOrigin: true,
            },
        }
    },
})


执行pnpm run generate,即可打包成静态文件,等待打包完成后,前端目录就会多一个dist,把dist里面的文件,全部上传到服务器域名的根目录下即可,无需反代和运行PM2