Jenkins nginx自动化构建前端vue项目

在现代的Web开发中,Vue.js已经成为一种非常流行的JavaScript框架。为了更高效地管理和部署Vue.js项目,使用自动化构建工具是至关重要的。Jenkins作为一款强大的持续集成和持续部署(CI/CD)工具,为我们提供了一种便捷的方式来自动化构建Vue.js项目。本文将介绍如何在Jenkins中配置和使用自动化构建Vue.js项目的步骤。

1、安装Jenkins 

前面已经讲过使用docker安装Jenkins ,可以参考前面的文章 :Vagrant + docker搭建Jenkins 部署环境-CSDN博客

2、安装nodejs

在容器里面安装nodejs,根据项目来下载所需要的版本,我这里下载的是node-v10.24.1-linux-x64.tar.xz

解压后,设置环境变量:vim /etc/profile

 保存后,让文件生效:

source /etc/profile

查看环境变量:

 看到node环境已经安装完成,这里要说一下,node编译需要python环境,所以我们也要提前安装好python环境,这里不做介绍了。

另外Jenkens 需要安装插件:Publish Over SSH ,  NodeJS Plugin

3、安装nginx ,这是是需要在宿主机上面安装,因为我的jenkins和服务器不在一台机器上。

 接着我们看看是否安装成功:

接下来我们先把nginx配置好,代码目录在 /htdocs/workspace下面:

nginx配置的文件内容如下:

server {listen 80;server_name  hg.vue.com;gzip on;gzip_buffers 32 4K;gzip_comp_level 6;gzip_min_length 100;gzip_types application/javascript text/css text/xml text/plain application/x-javascript image/jpeg image/gif image/png;gzip_disable "MSIE [1-6]\."; gzip_vary on;#charset koi8-r;#access_log  /var/log/nginx/portal.access.log  main;access_log  /var/log/nginx/portal.access.log;location / {root /htdocs/workspace/dist;try_files $uri $uri/ /index.html;index  index.html index.htm;}location /api/ {proxy_set_header Host $http_host;               proxy_set_header X-Real-Ip $remote_addr;proxy_set_header REMOTE-HOST $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_pass http://127.0.0.1:8080/;}
}
 4.配置vue项目的打包编译的自动化配置。

我这里有一个大数据项目:

 

5 。接着来配置jenkins自动化构建设置。

 在全局设置里面找到 Publish over SSH,填写下面的配置:

 Path to key 就是容器的秘钥:

 

这里我们测试一下连接宿主机,可以看到连接成功!

 创建一个自由分格的前端项目,点击保存:

 

 配置git访问的仓库路径和秘钥,前面那篇文章已经讲过怎么配置凭证,这里就不细说了。

 

配置代码推送时候触发自动构建。

 生成gitlab访问的api token

配置node js版本,这里也可以通过界面自动安装所需要的版本。

 在项目里面设置第三方访问的webhook ,把前面jenkins生成的api token和地址填入下面的位置后保存。

 

 接下来测试一下能否正常访问:

 设置构建shell 脚本:

 脚本如下:

#加载依赖
node -v
cd /var/jenkins_home/workspace/element
npm install node-sass --unsafe-perm=true
#构建程序
npm run build:prod
#移除之前的压缩包
rm -rf dist.tar.gz
#把当前目录的所有文件打包成dist.tar.gz
tar zcvf dist.tar.gz dist
exit 0

 配置完成后,提交代码:

 

 可以看到已经开始自动化构建了:

 在容器里面看到已经打包成功:

 可以看到宿主机的代码已经上传过来了。

13:51:13 Started by GitLab push by Administrator
13:51:13 Running as SYSTEM
13:51:13 Building in workspace /var/jenkins_home/workspace/element
13:51:13 The recommended git tool is: NONE
13:51:13 using credential gitlab_api_acess
13:51:13  > /usr/bin/git rev-parse --resolve-git-dir /var/jenkins_home/workspace/element/.git # timeout=10
13:51:13 Fetching changes from the remote Git repository
13:51:13  > /usr/bin/git config remote.origin.url http://192.168.33.10:9980/devop/eelement.git # timeout=10
13:51:13 Fetching upstream changes from http://192.168.33.10:9980/devop/eelement.git
13:51:13  > /usr/bin/git --version # timeout=10
13:51:13  > git --version # 'git version 2.30.2'
13:51:13 using GIT_ASKPASS to set credentials 
13:51:13  > /usr/bin/git fetch --tags --force --progress -- http://192.168.33.10:9980/devop/eelement.git +refs/heads/*:refs/remotes/origin/* # timeout=10
13:51:13 skipping resolution of commit remotes/origin/main, since it originates from another repository
13:51:13  > /usr/bin/git rev-parse refs/remotes/origin/main^{commit} # timeout=10
13:51:13 Checking out Revision 28b6ef5427d0af9b94d53b4cd250547507d84b81 (refs/remotes/origin/main)
13:51:13  > /usr/bin/git config core.sparsecheckout # timeout=10
13:51:13  > /usr/bin/git checkout -f 28b6ef5427d0af9b94d53b4cd250547507d84b81 # timeout=10
13:51:13 Commit message: "列表更新"
13:51:13  > /usr/bin/git rev-list --no-walk 28b6ef5427d0af9b94d53b4cd250547507d84b81 # timeout=10
13:51:13 [element] $ /bin/sh -xe /tmp/jenkins15749145108840772401.sh
13:51:13 + node -v
13:51:13 v10.24.1
13:51:13 + cd /var/jenkins_home/workspace/element
13:51:13 + npm install node-sass --unsafe-perm=true
13:51:19 npm WARN deprecated npmlog@4.1.2: This package is no longer supported.
13:51:21 npm WARN deprecated tar@2.2.2: This version of tar is no longer supported, and will not receive security updates. Please upgrade asap.
13:51:21 npm WARN deprecated fstream@1.0.12: This package is no longer supported.
13:51:21 npm WARN deprecated gauge@2.7.4: This package is no longer supported.
13:51:21 npm WARN deprecated are-we-there-yet@1.1.7: This package is no longer supported.
13:51:28 
13:51:28 > node-sass@4.14.1 install /var/jenkins_home/workspace/element/node_modules/node-sass
13:51:28 > node scripts/install.js
13:51:28 
13:51:29 Cached binary found at /root/.npm/node-sass/4.14.1/linux-x64-64_binding.node
13:51:29 
13:51:29 > node-sass@4.14.1 postinstall /var/jenkins_home/workspace/element/node_modules/node-sass
13:51:29 > node scripts/build.js
13:51:29 
13:51:29 Binary found at /var/jenkins_home/workspace/element/node_modules/node-sass/vendor/linux-x64-64/binding.node
13:51:29 Testing binary
13:51:29 Binary is fine
13:51:30 npm WARN data_view@4.1.0 No repository field.
13:51:30 npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.8 (node_modules/fsevents):
13:51:30 npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.8: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
13:51:30 
13:51:30 + node-sass@4.14.1
13:51:30 updated 1 package in 16.608s
13:51:31 + npm run build:prod
13:51:32 
13:51:32 > data_view@4.1.0 build:prod /var/jenkins_home/workspace/element
13:51:32 > vue-cli-service build
13:51:32 
13:51:32 
13:51:32 -  Building for production...
13:51:35 Browserslist: caniuse-lite is outdated. Please run next command `npm update`
13:51:44  WARNING  Compiled with 2 warnings5:51:44 AM
13:51:44 
13:51:44  warning  
13:51:44 
13:51:44 asset size limit: The following asset(s) exceed the recommended size limit (244 KiB).
13:51:44 This can impact web performance.
13:51:44 Assets: 
13:51:44   static/js/app.0d11b623.js (1.63 MiB)
13:51:44   static/js/chunk-33cd1053.03e8db09.js (361 KiB)
13:51:44   static/js/chunk-569b8c0b.6a84c4a9.js (626 KiB)
13:51:44   static/js/chunk-5f256084.8566a3a0.js (316 KiB)
13:51:44   static/js/chunk-elementUI.2f0523ed.js (551 KiB)
13:51:44   static/js/chunk-libs.ba859aaf.js (494 KiB)
13:51:44   static/html2canvas/html2canvas.js (320 KiB)
13:51:44 
13:51:44  warning  
13:51:44 
13:51:44 entrypoint size limit: The following entrypoint(s) combined asset size exceeds the recommended limit (244 KiB). This can impact web performance.
13:51:44 Entrypoints:
13:51:44   app (2.87 MiB)
13:51:44       static/js/runtime.170a745b.js
13:51:44       static/css/chunk-elementUI.18b11d0e.css
13:51:44       static/js/chunk-elementUI.2f0523ed.js
13:51:44       static/css/chunk-libs.56265064.css
13:51:44       static/js/chunk-libs.ba859aaf.js
13:51:44       static/css/app.57e7a0ec.css
13:51:44       static/js/app.0d11b623.js
13:51:44 
13:51:44 
13:51:44   File                                      Size             Gzipped
13:51:44 
13:51:44   dist/static/html2canvas/html2canvas.mi    145.34 KiB       35.11 KiB
13:51:44   n.js
13:51:44   dist/static/js/app.0d11b623.js            1666.84 KiB      935.35 KiB
13:51:44   dist/static/js/chunk-569b8c0b.6a84c4a9    625.98 KiB       212.62 KiB
13:51:44   .js
13:51:44   dist/static/js/chunk-elementUI.2f0523e    551.28 KiB       133.62 KiB
13:51:44   d.js
13:51:44   dist/static/js/chunk-libs.ba859aaf.js     494.42 KiB       174.20 KiB
13:51:44   dist/static/js/chunk-33cd1053.03e8db09    361.08 KiB       113.03 KiB
13:51:44   .js
13:51:44   dist/static/html2canvas/html2canvas.js    320.41 KiB       61.16 KiB
13:51:44   dist/static/js/chunk-5f256084.8566a3a0    316.15 KiB       20.28 KiB
13:51:44   .js
13:51:44   dist/static/js/chunk-6c9e1646.24c3229b    113.30 KiB       16.36 KiB
13:51:44   .js
13:51:44   dist/static/js/chunk-0a3d6705.dc2fcec0    12.64 KiB        4.60 KiB
13:51:44   .js
13:51:44   dist/static/js/chunk-5c2e346f.12ece7c4    8.65 KiB         2.63 KiB
13:51:44   .js
13:51:44   dist/static/js/chunk-44e49eed.110ed8c1    7.60 KiB         2.80 KiB
13:51:44   .js
13:51:44   dist/static/js/chunk-0d0b706b.1e273c29    6.94 KiB         2.35 KiB
13:51:44   .js
13:51:44   dist/static/js/chunk-9ac620d8.7bcf244a    4.87 KiB         1.85 KiB
13:51:44   .js
13:51:44   dist/static/js/chunk-5ef14812.0e35c75c    4.28 KiB         1.68 KiB
13:51:44   .js
13:51:44   dist/static/js/chunk-e4e00214.bd8aea91    1.46 KiB         0.74 KiB
13:51:44   .js
13:51:44   dist/static/js/chunk-23fc377d.f78254fe    0.44 KiB         0.31 KiB
13:51:44   .js
13:51:44   dist/static/css/chunk-elementUI.18b11d    197.98 KiB       30.00 KiB
13:51:44   0e.css
13:51:44   dist/static/css/app.57e7a0ec.css          19.95 KiB        4.75 KiB
13:51:44   dist/static/css/chunk-33cd1053.efcf8e1    5.55 KiB         1.59 KiB
13:51:44   5.css
13:51:44   dist/static/css/chunk-e4e00214.e0d5ab5    4.64 KiB         0.83 KiB
13:51:44   e.css
13:51:44   dist/static/css/chunk-libs.56265064.cs    3.52 KiB         1.26 KiB
13:51:44   s
13:51:44   dist/static/css/chunk-6c9e1646.e5b0e32    1.15 KiB         0.48 KiB
13:51:44   7.css
13:51:44   dist/static/css/chunk-5f256084.f7f960c    1.07 KiB         0.62 KiB
13:51:44   3.css
13:51:44   dist/static/css/chunk-5ef14812.cde0c5c    0.75 KiB         0.40 KiB
13:51:44   0.css
13:51:44   dist/static/css/chunk-44e49eed.c1ca27f    0.54 KiB         0.39 KiB
13:51:44   d.css
13:51:44   dist/static/css/chunk-23fc377d.49cb717    0.11 KiB         0.10 KiB
13:51:44   a.css
13:51:44 
13:51:44   Images and other types of assets omitted.
13:51:44 
13:51:44  DONE  Build complete. The dist directory is ready to be deployed.
13:51:44  INFO  Check out deployment instructions at https://cli.vuejs.org/guide/deployment.html
13:51:44       
13:51:45 + rm -rf dist.tar.gz
13:51:45 + tar zcvf dist.tar.gz dist
13:51:45 dist/
13:51:45 dist/index.html
13:51:45 dist/static/
13:51:45 dist/static/js/
13:51:45 dist/static/js/chunk-23fc377d.f78254fe.js
13:51:45 dist/static/js/chunk-0a3d6705.dc2fcec0.js
13:51:45 dist/static/js/chunk-libs.ba859aaf.js
13:51:45 dist/static/js/chunk-44e49eed.110ed8c1.js
13:51:45 dist/static/js/chunk-6c9e1646.24c3229b.js
13:51:45 dist/static/js/chunk-33cd1053.03e8db09.js
13:51:45 dist/static/js/chunk-e4e00214.bd8aea91.js
13:51:45 dist/static/js/chunk-5f256084.8566a3a0.js
13:51:45 dist/static/js/chunk-elementUI.2f0523ed.js
13:51:45 dist/static/js/chunk-0d0b706b.1e273c29.js
13:51:45 dist/static/js/chunk-9ac620d8.7bcf244a.js
13:51:45 dist/static/js/app.0d11b623.js
13:51:45 dist/static/js/chunk-5ef14812.0e35c75c.js
13:51:45 dist/static/js/chunk-5c2e346f.12ece7c4.js
13:51:45 dist/static/js/chunk-569b8c0b.6a84c4a9.js
13:51:45 dist/static/fonts/
13:51:45 dist/static/fonts/element-icons.2fad952a.woff
13:51:45 dist/static/fonts/element-icons.6f0a7632.ttf
13:51:45 dist/static/img/
13:51:45 dist/static/img/404.a57b6f31.png
13:51:45 dist/static/img/404_cloud.0f4bc32b.png
13:51:45 dist/static/css/
13:51:45 dist/static/css/chunk-5ef14812.cde0c5c0.css
13:51:45 dist/static/css/chunk-33cd1053.efcf8e15.css
13:51:45 dist/static/css/chunk-44e49eed.c1ca27fd.css
13:51:45 dist/static/css/chunk-23fc377d.49cb717a.css
13:51:45 dist/static/css/chunk-libs.56265064.css
13:51:45 dist/static/css/app.57e7a0ec.css
13:51:45 dist/static/css/chunk-e4e00214.e0d5ab5e.css
13:51:45 dist/static/css/chunk-6c9e1646.e5b0e327.css
13:51:45 dist/static/css/chunk-elementUI.18b11d0e.css
13:51:45 dist/static/css/chunk-5f256084.f7f960c3.css
13:51:45 dist/static/.gitkeep
13:51:45 dist/static/html2canvas/
13:51:45 dist/static/html2canvas/html2canvas.js
13:51:45 dist/static/html2canvas/html2canvas.min.js
13:51:45 dist/favicon.ico
13:51:45 + exit 0
13:51:45 Finished: SUCCESS

打开浏览器地址输入http://hg.vue.com/访问:

可以看到已经正常访问了。后面讲一下使用docker nginx在宿主机上面自动构建

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/33078.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

海洋生物识别系统+图像识别+Python+人工智能课设+深度学习+卷积神经网络算法+TensorFlow

一、介绍 海洋生物识别系统。以Python作为主要编程语言,通过TensorFlow搭建ResNet50卷积神经网络算法,通过对22种常见的海洋生物(‘蛤蜊’, ‘珊瑚’, ‘螃蟹’, ‘海豚’, ‘鳗鱼’, ‘水母’, ‘龙虾’, ‘海蛞蝓’, ‘章鱼’, ‘水獭’, …

Apple - Media Playback Programming Guide

本文翻译整理自:Media Playback Programming Guide(Updated: 2018-01-16 https://developer.apple.com/library/archive/documentation/AudioVideo/Conceptual/MediaPlaybackGuide/Contents/Resources/en.lproj/Introduction/Introduction.html#//apple_…

鸿蒙开发系统基础能力:【@ohos.faultLogger (故障日志获取)】

故障日志获取 说明: 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 导入模块 import faultLogger from ohos.faultLoggerFaultType 故障类型枚举。 系统能力: 以下各项对应的系统能力…

关于文章“python+百度语音识别+星火大模型+讯飞语音合成的语音助手”报错的修改

前言 关于我的文章:python百度语音识别星火大模型讯飞语音合成的语音助手,运行不起来的问题 文章地址: https://blog.csdn.net/Phillip_xian/article/details/138195725?spm1001.2014.3001.5501 1.报错问题 如果运行中报错,且…

深入分析 Android BroadcastReceiver (六)

文章目录 深入分析 Android BroadcastReceiver (六)1. 广播机制的高级优化策略1.1 使用 Sticky Broadcast(粘性广播)示例:粘性广播(过时,不推荐) 1.2 使用 LiveData 和 ViewModel 进行组件通信示例&#xf…

文章解读与仿真程序复现思路——电力自动化设备EI\CSCD\北大核心《考虑需求响应与储能寿命模型的火储协调优化运行策略》

本专栏栏目提供文章与程序复现思路,具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》 论文与完整源程序_电网论文源程序的博客-CSDN博客https://blog.csdn.net/liang674027206/category_12531414.html 电网论文源程序-CSDN博客电网论文源…

云原生容器技术入门:Docker、K8s技术的基本原理和用途

🐇明明跟你说过:个人主页 🏅个人专栏:《未来已来:云原生之旅》🏅 🔖行路有良友,便是天堂🔖 目录 一、容器技术概述 1、什么是容器技术 2、容器技术的历史与发展 3…

五十八周:文献阅读

目录 摘要 Abstract 文献阅读:使用 Transformer 进行长期预测-PatchTST 一、现有问题 二、提出方法 三、相关知识 1、Patch 2、Vanilla Transformer 四、提出的方法 1、模型结构 2、表征学习 3、模型优点 五、研究实验 1、数据集 2、评估指标 3、基…

Spring+SpringMVC介绍+bean实例化+依赖注入实战

Spring介绍 Spring是一个轻量级的Java 开发框架,核心是IOC(控制反转)和AOP(面向切面编程) Spring解决了业务层(Service包)与其他各层(表现层,包括Model,Vie…

车辆数据的提取、定位和融合(其二.一 共十二篇)

第一篇: System Introduction 第二篇:State of the Art 第三篇:localization 第四篇:Submapping and temporal weighting 第五篇:Mapping of Point-shaped landmark data 第六篇:Clustering of landma…

【Spring】Spring Boot 快速入门

📚博客主页:爱敲代码的小杨. ✨专栏:《Java SE语法》 | 《数据结构与算法》 | 《C生万物》 |《MySQL探索之旅》 |《Web世界探险家》 ❤️感谢大家点赞👍🏻收藏⭐评论✍🏻,您的三连就是我持续更…

计算机网络期末

1、IP 地址为:192.168.0.254,它的子网掩码应该为( ) A.255.255.255.0 B.255.255.254.0 C.255.255.252.0 D.255.255.0.0 2、最容易产生网络可靠性瓶颈问题的拓扑构型是( )。 A 总线型 B 星型 C 环型 D 网状型 3、HTTP 就是电子邮件阅读协议&#xff0…

UE5 中的碰撞问题

文章目录 一、初始准备二、重叠和碰撞三、自定义碰撞 一、初始准备 首先我们创建一个 BP_ThirdPerson 项目,然后在项目中创建两个 Actor 的蓝图 Blueprint 首先是一个移动的 BP_Push,这里使用 time line 循环旋转 cube 的相对位置 得到效果如下 然后是…

计算机网络 —— 应用层(FTP)

计算机网络 —— 应用层(FTP) FTP核心特性:运作流程: FTP工作原理主动模式被动模式 我门今天来看应用层的FTP(文件传输协议) FTP FTP(File Transfer Protocol,文件传输协议&#x…

qt基本窗口类(QWidget,QDialog,QMainWindow)

1.三个基本窗口类 1.1QWidget 所有窗口的基类 可以内嵌到其他窗口的内部,无边框 也可以作为独立窗口显示,有边框 1.2QDialog 继承于QWidget 对话框窗口类 不可以内嵌到其他窗口 有模态和非模态两种显示方式 1.3QMainWind 继承于QWidget 主窗口类 不可以…

【服务器07】之【GitHub项目管理】及【Unity异步加载场景】

登录GitHub官网 GitHub: Let’s build from here GitHub 注册账号 登录账号 输入一个自定义名字,点击创建存储库就可以了 现在我们下载Fork Fork - a fast and friendly git client for Mac and Windows (git-fork.com) 免费的 下载完成之后点击File下的Clone …

TLS握手中的RTT

文章目录 TLS 1.2 握手过程中的 RTT 次数TLS 1.3 1-RTT 初次TLS1.3 0-RTT 握手过程总结 TLS 1.2 握手过程中的 RTT 次数 TLS 1.2 握手通常需要2 RTT 才能完成。具体步骤如下: 第一次 RTT: 客户端发送 ClientHello:客户端生成一个随机数&…

Pytest和Unitest框架对比

在学到自动化的时候,很多同学都遇到了Pytest和Unitest框架,有的人是两个都学,但是学的不精只是知道分别怎么用.不了解两个区别是什么.有的是犹豫到底要学习那个框架.其实要做好自动化测试,是有必要了解不同框架之间的差异化的. Pytest 特点: Pytest采用了更简洁、更灵活的语法…

Linux - 探秘 Linux 的 /proc/sys/vm 常见核心配置

文章目录 PreLinux 的 /proc/sys/vm 简述什么是 /proc/sys/vm?主要的配置文件及其用途参数调整对系统的影响dirty_background_ratio 和 dirty_ratioswappinessovercommit_memory 和 overcommit_ratiomin_free_kbytes 实例与使用建议调整 swappiness设置 min_free_kb…

移动展厅:便捷高效的展示新模式—轻空间

在现代社会,移动展厅作为一种创新的展示模式,逐渐成为各行业的重要工具。凭借其便捷高效的特点,移动展厅为企业和组织提供了全新的展示解决方案。 快速部署与灵活性 移动展厅采用气膜结构,能够在短时间内快速部署。这种高效的搭建…