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. 【YashanDB知识库】yasql登录报错:YAS-00413

    [问题分类]错误码处理 [关键字]yasql,00413 [问题描述]使用工具设置不同并发迁移数据的过程中,导致yasql登录报错:YAS-00413 [问题原因分析]工具使用与数据库使用资源超过了操 ...

  2. ipv6 知识

    ref: 网络编程懒人入门(十一):一文读懂什么是IPv6 https://cloud.tencent.com/developer/article/1551346 IT知识大全:IPv6详解

  3. 忘记 mysql 8.0 root 密码 怎么修改

    本文copy自 Centos7重置Mysql 8.0.1 root 密码 问题产生背景: 安装完 最新版的 mysql8.0.1后忘记了密码,向重置root密码:找了网上好多资料都不尽相同,根据自己的 ...

  4. in notin exists not exists 性能优化算法总结

    in notin exists not exists 性能优化算法总结 1.1. in 和 exists 区别 1.2. not in 能不能走索引 1.3. not in 和 join 的关系 1. ...

  5. 深入理解c语言指针与内存

    一.将int强制转换为int指针,将int指针强转换为int void f(void) { int *p = (int*)100; //将int强制转换为int指针 printf("%d\n ...

  6. 前端使用 Konva 实现可视化设计器(22)- 绘制图形(矩形、直线、折线)

    本章分享一下如何使用 Konva 绘制基础图形:矩形.直线.折线,希望大家继续关注和支持哈! 请大家动动小手,给我一个免费的 Star 吧~ 大家如果发现了 Bug,欢迎来提 Issue 哟~ git ...

  7. 剖析 Redis List 消息队列的三种消费线程模型

    Redis 列表(List)是一种简单的字符串列表,它的底层实现是一个双向链表. 生产环境,很多公司都将 Redis 列表应用于轻量级消息队列 .这篇文章,我们聊聊如何使用 List 命令实现消息队列 ...

  8. 工具 – Cypress

    介绍 Cypress 是一款 e2e 测试工具.每当我们写好一个组件或者一个页面之后,我们会想对整体做一个测试. 在不使用工具的情况下,我们会开启 browser,然后做一系列点击.滚动.填 form ...

  9. pimp技法浅析--实现轻量级的面向接口编程

    pimp.hpp: #ifndef pimp_hpp #define pimp_hpp class CMyComponent{ public: CMyComponent(); ~CMyComponen ...

  10. @Primary ,@Qualifier ,@Autowired ,@Resource作用与区别

    首先阐述 @Autowired 和 @Resource 的区别 @Resource 是JDK自带的注解 可以按名称注入也可以按类型注入,默认是按名称注入,没有显式指定名称时,在spring容器中匹配与 ...