pushstate-server

内部的原理是通过 connect 服务器,开启一个端口,将 dist/index.html 文件作为静态模板输出

这种方式可以将本地的项目打包成静态文件,以服务的方式提供出去, 方便后端人员调用, 而自己也不影响dev的开发

安装

npm install pushstate-server --save

基本使用:

1)
在你的vue 项目的根目录下 创建一个server.js文件,下面是其文件内容 var server = require('pushstate-server'); server.start({
port: 3000, // 指定的端口
directory: './dist' // 一般会使用打包的目录
}); console.log('服务器启动发了) 2) 打开终端运行命令
node server.js 这个时候就可以把3000的端口提供给同事了

参数说明:

  • port:需要启动的端口号。

  • directory:index.html 所在的目录路径,这里直接写相对路径就好。

借用pm2完成进程的管理与代码的自动发布

关于pm2的安装与使用: 进程管理工具之PM2

在项目的根目录下新增pm2的配置文件,例如:pm2.config.js

module.exports = {
apps: [
{
name: 'h5',
script: 'server.js'
},
],
deploy: {
production: {
user: 'root',
host: '47.99.134.126',
ref: 'origin/master',
repo: 'git@git.zhlh6.cn:Nick930826/h5.git',
path: '/www/juejue-vite-h5',
'post-deploy': 'git reset --hard && git checkout master && git pull && npm i --production=false && npm run build:release && pm2 startOrReload ecosystem.config.js', // -production=false 下载全量包
env: {
NODE_ENV: 'production'
}
}
}
}

参数说明:

  • apps:script 为服务器通过 pm2 要执行的脚本,name 为脚本在 pm2 列表中的名称,这个名称要注意,避免后续其他项目重名,在服务器中你会无法区分是哪个项目。

  • deploy:production 为部署正式环境的配置

  • production.user:默认 root 用户。

  • production.host:要部署的服务器 IP 地址。

  • production.ref:要部署的代码,在代码仓库中的哪个分之,如果是测试环境,那么这里应该就是 origin/develop,这里我们默认是正式。

  • production.repo:代码存放的地址,这里是我的地址,你可以写你自己的代码仓库地址。

  • production.path:在服务器拉取远程仓库地址之后,存放在服务器中的地址

  • production.post-deploy:需要执行的一些指令,如 git reset 重制、git checkout master 切换分支、git pull 拉取最新代码、npm i 安装依赖、npm run build 打包构建、pm2 startOrReload ecosystem.config.js pm2 执行项目。

这里有一点要注意的是,安装依赖的时候,设置 --production=false 的目的是将 devDependencies 中的包也进行安装,否则我们无法进行 vite 打包操作。

首次执行的时候,由于服务器中并没有 h5 这个项目,所以我们需要初始化一下项目

pm2 deploy ecosystem.config.js production setup

这一步只是初始化, 并没有进行真正的部署

此时服务器中已经存在 h5 项目,接下来就是自动化执行整个部署流程,执行指令:

pm2 deploy production

注意,代码一定要先提交,因为服务器需要拉取最新的代码,这里必须要保持本地 commit 是没有未提交的。

这个时候就可以看到项目已经在服务器上运行起来了, 可以访问端口验证一下

前端项目部署之pushstate-server的更多相关文章

  1. Dockerfile + Nginx.conf文件记录(用于前端项目部署)

    Dockerfile + Nginx.conf文件记录(用于前端项目部署) 本教程依据个人理解并经过实际验证为正确,特此记录下来,权当笔记. 注:基于linux操作系统(敏感信息都进行了处理),默认服 ...

  2. 前端项目部署之Grunt

    如果你的前端项目很小或都者项目不需要通过专门的运维同学走流水线上线部署的话,那么可以略过以下的繁文. ok,Let's go! 我们看看如何使用grunt来部署上线项目? 前端项目一般分为两种类型:T ...

  3. Luffy之前端项目部署搭建

    1. 搭建前端项目 1.1 创建项目目录 cd 项目目录 vue init webpack lufei 根据需要在生成项目时,我们选择对应的选项, 效果: 根据上面的提示,我们已经把vue项目构建好了 ...

  4. 基于sentry的前端错误监控日志系统(部署sentry服务器/前端项目部署)-让前端最快的定位到生产问题

    背景 在这越来越发达的网络时代,web应用也是越来越复杂,尤其是前端的开发,也是越来越受重视. 所以在我们前端开发完成后,会有一些列的web应用的上线验证,如自测.QA测试.code review 等 ...

  5. JSP_运维_JSP项目部署到server(适合0经验新手)

    实战:真正server端部署jsp项目经验总结与记录(完整过程从0到10适合对server端部署0经验新手) jsp+tomcat+mysql项目部署到真正server; servermysql安装; ...

  6. 简单的利用nginx部署前端项目

    网上有很多教程写的一大堆东西,新手可能会有点看不懂,现在我写这篇文章是为了更好的帮助新手,如何将自己的前端项目部署到自己的服务器上. 首先我们必须要有一台自己的ubuntu服务器,如果没有可以去阿里云 ...

  7. .NET Core +Angular 项目 部署到CentOS

    前言: 最近公司需要开发项目能在Linux系统上运行,示例开发项目采用.Net Core + Angular开发:理论上完全支持跨平台. 但是实践才是检验真理的唯一标准:那么还是动手来验证实现下:过程 ...

  8. 如何使用Docker构建前端项目

    原文链接 Docker单独部署前端项目和Node项目是非常便捷的,在这里分享一下Docker的使用,主要聊聊它的部署实践.(我是window10专业版安装Docker) Docker Docker是一 ...

  9. SSIS2012 项目部署模型

    SSIS 2012 支持两种部署模型:项目部署模型和包部署模型. 使用项目部署模型可以将项目部署到 Integration Services 服务器,使用包部署模型可以将单独的包部署到Integrat ...

  10. SSIS 项目部署模型

    微软 BI 系列随笔 - SSIS 2012 基础 - SSIS 项目部署模型 关于部署 SSIS 2012 支持两种部署模型:项目部署模型和包部署模型. 使用项目部署模型可以将项目部署到 Integ ...

随机推荐

  1. 人形动画常见IK的处理

    Unity中常见人形动画IK的处理方式 本文将尝试仅使用Untiy内置的Animator来解决常见的几种运动所需的IK.也会给出核心功能的代码实现. 效果一览:b站视频 Unity中人形角色的IK I ...

  2. RxJS 系列 – Scheduler

    前言 大部分情况下, RxJS 都是用来处理异步执行的. 比如 Ajax, EventListener 等等. 但其实, 它也是可以同步执行的, 甚至 by default 它就是同步执行的 (下面会 ...

  3. MyBatis——简介

    MyBatis MyBatis 是一款优秀的持久层框架,用于简化 JDBC 开发 官网:https://mybatis.net.cn/ 持久层 负责将数据保存到数据库的那一层代码 javaEE 三层架 ...

  4. HTML——简介-入门

    W3C标准:网页主要由三部分组成 结构:HTML 表现:CSS 行为:JavaScript HTML快速入门   1.新建文本文件,后缀改为 .html   2.编写HTML结构标签(不区分大小写) ...

  5. 自我介绍&博客指南&博客更新日志

    自我介绍 目前高中在读生 专用网名:Alloverzyt,端木 傲 忍 入站必读: 我所爱之人,敬祝 本人博客及动态免责声明 学历简述:成都市棕北小学,成都市石室联合中学,成都市石室中学 博客指南 本 ...

  6. 【赵渝强老师】Kafka的消息持久化

    1.Kafka消息持久性概述 Kakfa依赖文件系统来存储和缓存消息.对于硬盘的传统观念是硬盘总是很慢,基于文件系统的架构能否提供优异的性能?实际上硬盘的快慢完全取决于使用方式.同时 Kafka 基于 ...

  7. select框多选(利用Bootstrap-select)

    前端HTML: <select id="usertype" multiple class="selectpicker" style="width ...

  8. Android Perfetto 系列 2:Perfetto Trace 抓取

    使用 Perfetto 分析问题跟使用 Systrace 分析问题的步骤是一样的: 首先你需要抓取 Perfetto 文件 在ui.perfetto.dev 中打开 Trace 文件进行分析或者使用命 ...

  9. Pytorch 基于加权平滑过渡的无缝拼接

    基于加权平滑过渡的无缝拼接 背景 在做照片数字人视频生成的时候,为了达到快速响应实时播放的需求,即视频的生成速度 必须小于 音频的播放速度. 因此,我们截取了一部分较小的可动区域进行推理生成,然后把生 ...

  10. iOS生成ipa包的时候总是弹窗提示macOS想要使用系统钥匙串

    最近新换了一台苹果电脑,性能不错,不过证书和描述文件需要重新配置,遇到了一系列奇怪的问题.在这里整理记录下来,希望能给其他人提供一些帮助.iOS生成ipa包的时候总是弹窗提示[macOS想要使用系统钥 ...