博客
关于我
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/

    你可能感兴趣的文章
    php获取用户真实IP和防刷机制
    查看>>
    php获取网页内容的三种方法
    查看>>
    R-CNN算法优化策略
    查看>>
    PHP规范PSR0和PSR4的理解
    查看>>
    php解析ipa包,获取logo
    查看>>
    R&Rstudio安装各种包
    查看>>
    php设置cookie,在js中如何获取
    查看>>
    php设置socket超时时间
    查看>>
    php设计模式 萨莱 pdf,PHP设计模式 建造者模式
    查看>>
    PHP设计模式之----观察者模式
    查看>>
    php设计模式之装饰器模式
    查看>>
    R&Python Data Science系列:数据处理(5)--字符串函数基于R(一)
    查看>>
    PHP设计模式:观察者模式
    查看>>
    php访问mysql(1)
    查看>>
    php详细学习1
    查看>>
    php语言优劣
    查看>>
    PHP语言最优雅的支付SDK扩展包
    查看>>
    PHP请求https域名发生segment fault段错误
    查看>>
    PHP读写XML文件
    查看>>
    PHP读写XML文件
    查看>>