博客
关于我
Vue项目自动部署之二、NuxtJS 发布部署(PM2、GitHub Actions)
阅读量:257 次
发布时间:2019-02-28

本文共 1157 字,大约阅读时间需要 3 分钟。

传统部署方式

传统部署流程包括以下步骤:

  • 配置 Host + Port

    nuxt.config.js 中设置服务器属性:

    • host:默认值为 localhost,仅限本地访问;若需要对外访问,设置为 0.0.0.0,以监听所有网卡地址。
    • port:Nuxt默认端口为 3000
  • 压缩发布包

    服务器上传的文件包括:.nuxtstaticnuxt.config.jspackage.jsonpackage-lock.jsonpm2.config.js

  • 上传到 Linux 服务器

    • 使用 VSCode 终端连接服务器。
    • 通过 scp 命令上传压缩包。
    • 解压并安装依赖。
    • 启动服务。
  • 使用 PM2 启动 Node 服务

    PM2 是管理 Node.js 应用的工具,通过它可以将应用运行在后台。

    • 安装 PM2:使用 npm i -g pm2 全局安装。
    • 启动应用pm2 start npm -- start
    • 配置文件:创建 pm2.config.json,指定启动脚本和参数。
    • 注意事项:在 Windows 环境下,使用 PM2 需要将 npm 命令写入脚本文件中,避免直接执行。

    Windows 环境下的解决方案

    • 错误日志:PM2 报错提示 Maximum call stack size exceeded,可能是由于 npm 源问题。
    • 解决方法:切换 npm 源至淘宝镜像,通过 npm set registry https://registry.npm.taobao.org/ 配置。

    自动化部署方式

    结合 CI/CD 服务,实现自动化部署。

    准备工作

    • 服务器配置:确保服务器安装了 Git、Node.js、PM2 等工具。
    • GitHub 仓库:托管项目代码。

    GitHub Actions 配置

  • 创建工作流文件:在 github/workflows/.yml 中定义工作流。
  • 配置 secrets:在 GitHub 项目设置中添加 Token、服务器 IP、用户名和密码。
  • 工作流步骤

  • 检查出代码:使用 actions/checkout@master 插件获取代码。
  • 构建发布包:执行 npm installnpm run build
  • 生成压缩包:使用 tar 命令打包必要文件。
  • 发布到服务器:通过 SSH 行动上传并解压发布包,安装依赖,启动服务。
  • 常见问题解决

    • 环境变量问题:在 GitHub Actions 中,手动添加 Node.js 路径:
      export PATH=/root/.nvm/versions/node/v12.17.0/bin:$PATH
    • 权限问题:确保服务器权限足够,禁止密码策略阻止脚本执行。

    通过以上步骤,可以实现自动化部署,减少人为错误,提高效率。

    转载地址:http://efzp.baihongyu.com/

    你可能感兴趣的文章
    Objective-C实现N数理论(质素相关)算法(附完整源码)
    查看>>
    Objective-C实现n皇后问题算法(附完整源码)
    查看>>
    Objective-C实现O(E + V) 中找到 0-1-graph 中的最短路径算法(附完整源码)
    查看>>
    Objective-C实现OCR文字识别(附完整源码)
    查看>>
    Objective-C实现odd even sort奇偶排序算法(附完整源码)
    查看>>
    Objective-C实现ohms law欧姆定律算法(附完整源码)
    查看>>
    Objective-C实现P-Series algorithm算法(附完整源码)
    查看>>
    Objective-C实现page rank算法(附完整源码)
    查看>>
    Objective-C实现PageRank算法(附完整源码)
    查看>>
    Objective-C实现pancake sort煎饼排序算法(附完整源码)
    查看>>
    Objective-C实现pascalTriangle帕斯卡三角形算法(附完整源码)
    查看>>
    Objective-C实现PascalTriangle帕斯卡三角算法 (附完整源码)
    查看>>
    Objective-C实现password generator复杂密码生成器算法(附完整源码)
    查看>>
    Objective-C实现patience sort耐心排序算法(附完整源码)
    查看>>
    Objective-C实现PCA(附完整源码)
    查看>>
    Objective-C实现perceptron算法(附完整源码)
    查看>>
    Objective-C实现perfect cube完全立方数算法(附完整源码)
    查看>>
    Objective-C实现perfect number完全数算法(附完整源码)
    查看>>
    Objective-C实现perfect square完全平方数算法(附完整源码)
    查看>>
    Objective-C实现permutate Without Repetitions无重复排列算法(附完整源码)
    查看>>