根据上篇文章《Linux下Jenkins与GitHub自动构建NetCore与部署》,我们知道了Jenkins的强大功能,自动构建,部署了一个NetCore的Web,让开发人员专注于开发,不用管理线上,或测试服务器的部署。那现在,互联网公司很多采用了前后端分离的开发模式,既然服务端可以用Jenkins,那么前端是否也可以吗?那我们就尝试下,试着去构建一个Vue的基本项目。

1. 构建环境

对于整个linux环境是什么样的,我就不多讲了,不懂就看上一篇文章,不过这边还是要讲2点:

  • Node的安装

    附赠安装教程链接,不过压缩包要上传到服务器,可以使用Xshell或者ftp,当然也可以wget https://nodejs.org/dist/v10.16.0/node-v10.16.0-linux-x64.tar.xz,然后再进行解压操作,具体就看文章吧。

    环境 地址
    Node https://www.cnblogs.com/liuqi/p/6483317.html

    安装完后,查看node版本

  • Jenkins的Node插件

    对于Node项目的构建,我们需要安装Jenkins的Node插件。

    1. 在Jenkins的“系统管理”找到“插件管理”,再找的“NodeJs”的插件,安装即可。

    2. 接着我们在“全局工具配置” ,设置我们要执行的Node版本,当然,要跟我们刚才安装的版本一致。

2. Jenkins自动构建

  • 定时构建

    在我们完成第一个步骤后,我们就可以开始新建项目,然后设置参数,启动构建了。

    1. 创建任务

    2. 自定义工作目录

    3. 设置源代码

      这边的源代码,我采用的是之前的一个Vue版的博客园WebApp,顺便这边也推广下,附上博客地址:《我用Vue写了个博客园WebApp

    4. 设置构建触发器

      接下来我们为构建设置一个定时器,定时的规则,在上篇文章也讲过了,这边就不多讲了,大家看上一篇文章即可,这边设置了下,3分钟自动构建一次。

    5. 设置构建环境

      这边的环境就选择,刚才我们在“全局工具配置”中设置的Node的版本就可以了。

    6. 设置要执行构建的命令

      执行命令当然是Node的命令了,安装依赖包,编译,打包。

      1. cd /ftpfile/node/vue/ #进入Jenkins工作空间下vue项目目录 


      2. node -v #检测node版本(此条命令非必要) 


      3. npm -v #检测npm版本(此条命令非必要) 


      4. npm config set registry https://registry.npm.taobao.org #把npm源设置为淘宝源(这个你懂的) 


      5. npm config get registry #检测npm是否切换成功(此条命令非必要) 


      6. npm install #安装项目中的依赖 


      7. npm run build #打包 


    7. 构建

      一切准备就绪,点击构建,构建完成。你可以将打包的文件移到web网站那边,当然,也可以在构建命令中使用命令复制。





  • 触发构建

    对于触发构建,我们在上篇博客也讲过,对于触发构建的条件,这边就不在多讲了,大家可以去看上篇文章。我在在这边只需要先在GitHub先添加WebHook,然后修改构建触发器就可以了。

    1. 添加WebHook

    2. 修改构建触发器



    3. 提交代码,自动构建



3. 项目部署

对于项目的部署,其实没啥好讲的,以前在将Vue博客园里面讲过了,大家可以往前翻下文章。简单来讲就是,使用nginx进行反向代理,因为你不是已经打包了嘛,只剩下静态页面,与JS。当然如果你觉得自动构建生成的dist不在指定位置,那可以在构建命令中,打包完,压缩下,然后复制到指定目录,解压就可以了。

所以这边就不在多多描述了。

4. 总结一下

该篇内容较少,因为很多内容其实都在上一篇讲完了,对于Node的构建,无非就是Jenkins加上Node插件,但前提是你的服务器要安装NodeJs,对于构建步骤都是一样的,无非就是构建命令不一样而已,Web部署也都是Nginx,当然还可以使用supervisor进行守护进程。

最后,我们的前后端分离的自动构建与部署就这样完成了。简单吧,当然若是存在跨域的问题,可以内容再用nginx做跨域,或者服务端直接开CROS就可以了。那两篇关于前后端的自动构建与线上部署就这样完成咯。

Linux下Jenkins与GitHub自动构建Node项目(Vue)的更多相关文章

  1. Linux下Jenkins与GitHub自动构建NetCore与部署

    今天我们来谈谈NetCore在Linux底下的持续集成与部署.NetCore我就不多介绍了,持续集成用的是Jenkins,源代码管理器用的是GitHub.我们就跟着博文往下走吧. 1.Linux环境 ...

  2. Linux下Jenkins+git+gradle持续集成环境搭建

    Linux下Jenkins+git+gradle持续集成环境搭建 来源:IT165收集  发布日期:2014-08-22 21:45:50 我来说两句(0)收藏本文   一.项目介绍 和 linux ...

  3. Linux下Git和GitHub使用方法总结

    来源:Linux下Git和GitHub使用方法总结 1 Linux下Git和GitHub环境的搭建 第一步: 安装Git,使用命令 “sudo apt-get install git” 第二步: 到G ...

  4. 【Jenkins】linux下Jenkins集成ant进行编译并发送结果

    三个文章吧: 1 如何使用ant编译执行jmeter测试用例,并生成html报告 2 如何在Linux下搭建jenkins环境. 3 如何在Linux下搭建的jenkins中执行ant构建运行,并发送 ...

  5. linux下通过脚本实现自动重启程序的方法

    无论什么程序都不可能完美无缺,理论上,任何程序都有 Core Dump 的一天,正式运营的程序,尤其是服务器程序,一旦 Core Dump ,后果不堪设想,有过服务器开发经验的朋友,一定都经历过深夜美 ...

  6. Linux下Tomcat catalina.out自动归档,以及logrotate 配置详解

    Linux下Tomcat catalina.out自动归档 如果 catalina.out 日志达到 2GB 大小的时候,Tomcat 因为缓存问题,便没有办法继续输出日志了.  为了避免这种情况,你 ...

  7. Yeoman自动构建js项目

    Aug 19, 2013 Tags: bowergruntJavascriptjsnodejsyeomanyo Comments: 10 Comments Yeoman自动构建js项目 从零开始nod ...

  8. 向github项目push代码后,Jenkins实现其自动构建

    配置Jenkins(添加Github服务器) 1.进入[系统管理] --> [系统设置] ,找到[Github] 2.添加Github服务器 这里需要github提供一个密钥文本,我们去gith ...

  9. 环境部署(七):linux下Jenkins+Git+JDK持续集成

    前面几篇博客介绍了linux下安装Jenkins.Git.JDK以及Git基础教程和Git关联github等内容,这篇博客,介绍下如何在linux服务器中利用它们构建持续集成环境... 一.准备工作 ...

随机推荐

  1. ue4 1官网编程指南总结

    https://docs.unrealengine.com/latest/CHN/index.html 中编程指南 快速入门 actor生命周期 FloatingActor.h #pragma onc ...

  2. 关于通过angularJs将页面中的html table 导出生成excel

    直接上代码: <button class="btn btn-link" ng-click="exportToExcel('#table1')"> & ...

  3. 洛谷P1655 小朋友的球(Stirling数)

    P1655 小朋友的球 题目描述 @发源于 小朋友最近特别喜欢球.有一天他脑子抽了,从口袋里拿出了N个不同的球,想把它们放到M个相同的盒子里,并且要求每个盒子中至少要有一个球,他好奇有几种放法,于是尝 ...

  4. [Xcode 实际操作]五、使用表格-(10)插入UITableView单元格

    目录:[Swift]Xcode实际操作 本文将演示如何插入一行单元格. 在项目导航区,打开视图控制器的代码文件[ViewController.swift] import UIKit //首先添加两个协 ...

  5. jconsole 本地连接失败

    http://limaoyuan.iteye.com/blog/1541745 加jvm 启动参数即可: -Dcom.sun.management.jmxremote  -Dcom.sun.manag ...

  6. 黑马Mybatis day3 多表查询 1.xml配置方式 2.注解方式

    package com.itheima.mozq; import com.itheima.domain.Order; import com.itheima.mapper.OrderMapper; im ...

  7. JavaScript进阶 - 第8章 浏览器对象

    第8章 浏览器对象 8-1 window对象 window对象是BOM的核心,window对象指当前的浏览器窗口. window对象方法:

  8. 管道是如何随着WebHost的开启被构建出来的?

    管道是如何随着WebHost的开启被构建出来的? 注册的服务器和中间件共同构成了ASP.NET Core用于处理请求的管道, 这样一个管道是在我们启动作为应用宿主的WebHost时构建出来的.要深刻了 ...

  9. MS SqlServer之Exec和EXEC SP_EXECUTESQL

    exec执行sql时字符串时,不能给变量赋值,如果要在sql里给变量赋值,请用EXEC SP_EXECUTESQL 示例: 通过 SP_EXECUTESQL 的第2个参数来定义有哪些参数 输出的加OU ...

  10. nginx超时问题

    一. 戏说不管你是做运维还是做开发,哪怕你是游客,时不时会遇到502 Bad Gateway或504 Gateway Time-out.出现这页面,把服务重启下,再实在不行重启下服务器,问题就解决了, ...