前言

“如果你有开发环境、测试环境、预发布环境、正式环境, 那么如何去部署你的项目将会是一件很头大的事情。”

市面上已经有很多成熟的自动化构建部署方案,区别就是设置门槛和便捷性问题。在这里抛砖引入,介绍一个即使新手,也能在半天完成的自动化方案。

核心

——“使用华为devcloud流水线,搭建一套前端项目自动化构建部署工具

配置流程

1、注册华为devcloud账号

2、登录后,找到:产品--开发者--流水线(华为提供免费使用的基础版和升级版(12元))

3、创建管理项目, 这里主要是配置管理你的项目,相当于全家桶般项目管理工具

4、点击项目进入项目管理界面

顶部“构建&发布--流水线”

这里就是正式进入自动化构建部署配置

流水线顾名思义就是把多个相对独立的环节组合在一起,然后顺序完成,最后交付给我们完整的结果。

5、点击右上角“新建流水线”

——输入自定义名称和描述

6、点击“下一步”,选择项目代码源

我使用的是码云:

“新增服务扩展点”:相当于创建一个账号,授权登录一样

accessToken就是码云里面的私人令牌

选择扩展点后,会自动读取你仓库项目,对应你需要的项目和分支即可,

如果需要推送代码后自动触发流水线工作, 可以选择触发事件

7、“下一步”——选择模板:选择不适用模板,点击确定就创建好了基于某个项目某个分支的流水线

8、流水线已经创建好,完成整个流水线任务的步骤还需要创建相对独立的构建任务和部署任务

这里开始创建构建任务:点击“构建&发布”选择“编译构建”

进入构建任务界面

点击“新建任务”,进入构建任务配置
a.自定义名字

b.默认关联已创建好的项目

"下一步":选择代码源

“下一步”:选择构建模板

前端项目主要使用npm或者yarn

但是这里选择yarn后,node版本最高只支持10+版本,不适用

所以选择npm,node最高支持12+

点击确定后, 进入配置构建步骤:

已经帮你写好了构建脚本,可以删除不需要的

其实这里的代码只是正常的本地打包步骤,并不能满足自动化部署使用

我们需要在项目中安装tar包,同时在项目根目录下新建tar配置文件

作用是将我们打包好的文件(dist),将dist文件夹下所有文件压缩成

xxx.tar.gz包

前端项目tar配置文件:

可以根据你自己的项目修改

在package.json中增加tar构建命令

然后修改npm构建命令

构建完成后, 我们需要添加一个步骤,将打包好的文件上传到发布库

点击“npm构建”下面的“+”,增加步骤

主要配置3个地方:

构建包路径:就是刚才tar配置文件中, 压缩包的存放路径

版本号:可以在参数设置中配置,最终以"${}"方式读取

包名: 可以在参数设置分钟配配置,最终以“${}”方式读取

配置好后,点击“新建”,就创建好了一个构建任务

可以执行一次,看看是否正常构建

构架成功后, 会在发布仓生成我们打包好的文件:

这里的路径就是刚才配置的:包名/版本号/压缩包名

构建任务完成, 就离成功不远了

9、新建“部署任务”:

就是将我们打包好的文件上传到我们服务器

“新建任务”:

a自定义名称 b默认关联项目 c自定义描述

"下一步": 选择空包模板即可

"下一步":进入部署配置页面

a. 添加"选择部署来源": 就是我们要上传的项目包

这里的主机组:就是一个建一个能登陆服务器的账号,并且有权限操作

如果版本号是动态改变的,可以在“参数设置”中配置,同样以“${}”读取

软件包路径,可以在发布仓中看到

b. 添加“执行shell命令”:就是把项目包上传到服务器后,要执行什么操作。

这里的命令作用就是:

进入服务器项目目录--删除项目文件--解压项目包--删除项目包

shell命令:

cd /home/web ——服务器执行进入指定文件目录

rm -rf likeabc ——删除之前项目文件夹

tar xvf likeanc-test.tar.gz ——解压项目包,具体使用zxvf还是xvf,需要根据你的服务器配置决定,一个不能用,就换另一个。

rm -rf likeabc-test.tar.gz ——删除压缩包

“保存执行”,验证是否成功

10、我们已经建立好了构建任务和部署任务,并独立运行成功,现在可以将这些任务合并到流水线上,完成我们最终需要的一键自动化构建和部署

a. 在流水线上添加一个构建任务

b. 点击发布仓库右边的“+”,新增一个部署流程

c. 最后就形成了一个完整的流水线

至此,我们就已经建好了一个完整的可运行的一键自动化构建部署前端项目的工具了。

整体难点:

  1. 构建任务配置中的npm配置和项目文件使用tar压缩的配置。

  2. 上传到发布库的包路径设置,构建失败主要问题就是出在这里,一定要确保包路径跟你tar压缩包存放路径一致。

  3. 部署中的执行shell命令, 很多人不会写,毕竟我们不是后台开发或者运维,能对服务器命令得心应手。

按以上步骤配置, 细心点,你也能配置出属于你的自动化工具

我是mofle,我在微信公众号:无JS不前端

等你

前端能读取压缩包内容吗?_解决前端多环境部署的痛点相关推荐

  1. springcloud生产环境一般怎么部署_机器学习模型生产环境部署的四种系统架构总结...

    本文将从简单到复杂介绍典型架构的特点以及其优缺点. 介绍 一旦数据科学家对模型的性能感到满意,下一步便是"模型生产环境部署", 没有系统的合理配置,您的Kaggle Top1模型可 ...

  2. python 读取数据库内存爆_解决python读取几千万行的大表内存问题

    Python导数据的时候,需要在一个大表上读取很大的结果集. 如果用传统的方法,Python的内存会爆掉,传统的读取方式默认在内存里缓存下所有行然后再处理,内存容易溢出 解决的方法: 1)使用SSCu ...

  3. 前端div里的内容下沉_自学Web前端的五个不同阶段,从浅入深

    1.学习HTML,这是最简单,最基本的是要掌握div,formtable.Ulli.P.跨度.字体这些标签,这些都是最常用的,尤其是DIV和表格,DIV,表也可以用于布局,但不灵活,和用于基本表处理数 ...

  4. python如何读取文件内容求和_使用python对文件中的数值进行累加的实例

    问题描述: 一个文件由若干条记录组成,记录的格式为:"num1 num2",有时候,需要统计文件中num1对应的num2的总值. 处理问题的思路 用传说中的python来处理,很方 ...

  5. html5移动web开发黑马掌上商城_月入35k大佬总结:web前端必须学习的内容(附全套前端教程)...

    为了让学习变得轻松,高效!今天给大家分享一套教学资源,帮助大家在学习Web前端的道路上披荆斩棘,这套资源的领取方式请看文末 优秀的WEB前端工程师具备编写任何一个互联网系统的前端页面.交互代码的能力. ...

  6. java无法读取方案文档_解决Spring的java项目打包后执行出现“无法读取方案文档...“、“原因为 1) 无法找到文档; 2) 无法读取文档; 3) 文档的根元素不是...”问题...

    问题 一个用Spring建的java项目,在Eclipse或idea中运行正常,为什么打包后运行出现如下错误呢? 2019/07/10/19:04:07 WARN [main] org.springf ...

  7. 前端JS读取文件内容并展示到页面上

    核心法宝:FileReader {this.returnDomFun(<><UploadFiletitle={'AAAA'}fileName={fileName}onChangeIn ...

  8. 前端传值后端接收不到_解决vue get请求传参后端接收不到参数值(java sptingboot)

    //代码如下import axios from 'axios' import { MessageBox, Message } from 'element-ui' import store from ' ...

  9. 前端怎么获取cookie的值_作为前端你必须要了解的安全性问题!

    前端技术不断发展,安全性的问题也越来越受到关注.作为前端工程师,保障网络安全也越来越重要. XSS攻击 XSS(Cross Site Scripting)跨站脚本攻击. 攻击者在网站上植入非法的htm ...

最新文章

  1. keras 的 example 文件 pretrained_word_embeddings.py 解析
  2. 怎么安装python3-如何装python3
  3. Asp.Net Membership 回顾
  4. ASP.NET MVC中为DropDownListFor设置选中项的方法
  5. android support Percent支持库开发
  6. java厨房_Java多线程基础
  7. react 导航条选中颜色_调整安卓手机的颜色以更好地查看一切
  8. HookProc 和 CallNextHookEx
  9. Magento 默认显示全部 magento products per page on grid default value all
  10. PPPoE工作原理与帧格式
  11. 990. 等式方程的可满足性
  12. Anacond win10安装与介绍
  13. 微软vc运行库地址VC9VC11
  14. Matlab spline
  15. 410c 上安装中文版本的答题器游戏demo
  16. 计算机管理储存u盘无法使用,U盘无法识别的三种常见情况
  17. Dev-c++怎么设置背景色
  18. 【Python 实战基础】如何绘制直方图分析张三成绩数据
  19. 下载神器Aria2 + WebUI-Aria2 + 接管Chrome下载任务
  20. 【java学习】 面向对象编程+java购物车系统

热门文章

  1. cocoaPods的配置
  2. 积分商城如何梳理思路和进行设计
  3. 腾讯数据解读:95后基本不爱用微信,98%都是成年人,社交应用存在巨大机会...
  4. 【干货】Duang!看好产品是如何增加情感化设计的?
  5. 表驱动设计的一点见解
  6. 怎么去掉vux点击group产生的阴影
  7. 最大团问题-分支界限法
  8. Elasticsearch2.x Doc values
  9. 【C语言】数字在排序数组中出现的次数(改动)
  10. 两篇很牛的vim使用技巧