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在宿主机上面自动构建

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

控制下属很简单,用好这3大管人绝招,再跳的刺头也不敢造次

控制下属很简单,用好这3大管人绝招,再跳的刺头也不敢造次 第一招:给压力 很多团队中的员工都是自己不带脑子工作,遇事就喜欢请示领导,让领导拿方案、拿决策。 还有一些人,推一下,他才动一下&a…

【数据库】七、数据库安全与保护

七、数据库安全与保护 文章目录 七、数据库安全与保护安全性访问控制数据库安全性控制用户标识和鉴别存取控制自主存取控制(DAC)存取控制方法:授权与回收GRANT授权REVOKE回收 强制存取控制(MAC) MySQL的安全设置用户管理1.创建登录用户2.修改用户密码3.修改用户名4.…

L02_并发编程知识图谱

这些知识点你都掌握了吗?大家可以对着问题看下自己掌握程度如何?对于没掌握的知识点,大家自行网上搜索,都会有对应答案,本文不做知识点详细说明,只做简要文字或图示引导。 并发理论 并发编程Bug源头 为了…

Ant Design Vue中的Table和Tag的基础应用

目录 一、Table表格 1.1、显示表格 1.2、列内容过长省略展示 1.3、完整分页 1.4、表头列颜色设置 二、Tag标签 2.1、根据条件显示不同颜色 2.2、控制关闭事件 一、Table表格 效果展示&#xff1a; 官网&#xff1a;Ant Design Vue 1.1、显示表格 <a-tableref&quo…

hdfs高可用文件系统架构

1、整体架构 2、角色简介 2.1、namenode NameNode 是 HDFS 集群中的核心组件&#xff0c;负责管理文件系统的元数据、处理客户端请求、管理数据块、确保数据完整性和高可用性。由于其重要性&#xff0c;NameNode 的性能和可靠性直接影响整个 HDFS 集群的性能和可靠性。在生产…

Linux 五种IO模型

注&#xff1a;还有一种信号驱动IO&#xff0c;使用较少暂不讨论&#xff1b; 一&#xff0c;区分阻塞、非阻塞和同步、异步 看了很多文章对这两组概念解释和对比&#xff0c;说的太复杂了&#xff0c;其实没必要&#xff0c;两句话就能说清楚。 首先&#xff0c;对于读数据rec…

Day6 —— 电商日志数据分析项目部署流程

项目二 _____&#xff08;电商日志数据分析项目&#xff09; 项目部署过程相关依赖运行结果截图统计页面浏览量日志的ETL操作统计各个省份的浏览量 项目部署过程 以IDEA 2023版本为例 步骤一&#xff1a;创建一个空项目&#xff0c;命名为demo_2&#xff0c;并指定语言类型和构…

【2024德国留学】签证被拒的十种原因.....

目录 2024德国留学签证被拒的常见原因 一、德语水平不足 二、录取考试未通过 三、签证申请中的其他问题 一、选择适合自己的签证类型 二、准备面签材料 1. 确认预约邮件 2. 签证申请表 3. 自备3张证件照 4. 护照原件和复印件 5. 动机信 6. 个人简历 7. 学历证及其…

15天搭建ETF量化交易系统Day9—玩大A必学网格策略

搭建过程 每个交易者都应该形成一套自己的交易系统。 很多交易者也清楚知道&#xff0c;搭建自己交易系统的重要性。现实中&#xff0c;从&#xff10;到&#xff11;往往是最难跨越的一步。 授人鱼不如授人以渔&#xff0c;为了帮助大家跨出搭建量化系统的第一步&#xff0c;我…

Python+Pytest+Yaml+Request+Allure接口自动化测试框架详解

PythonPytestYamlAllure整体框架目录&#xff08;源代码请等下篇&#xff09; 框架详解 common:公共方法包 –get_path.py:获取文件路径方法 –logger_util.py:输出日志方法 –parameters_until.py&#xff1a;传参方式方法封装 –requests_util.py&#xff1a;请求方式方法封…

基于matlab的不同边缘检测算子的边缘检测

1 原理 1.1 边缘检测概述 边缘检测是图像处理和计算机视觉中的基本问题&#xff0c;其目的在于标识数字图像中亮度变化明显的点。这些变化通常反映了图像属性的重要事件和变化&#xff0c;如深度不连续、表面方向不连续、物质属性变化和场景照明变化等。边缘检测在特征提取中…

Dockerfile实战

Dockerfile是用来快速创建自定义镜像的一种文本格式的配置文件&#xff0c;在持续集成和持续部署时&#xff0c;需要使用Dockerfile生成相关应用程序的镜像。 Dockerfile常用命令 FROM&#xff1a;继承基础镜像MAINTAINER&#xff1a;镜像制作作者的信息&#xff0c;已弃用&a…

经典面试题【作用域、闭包、变量提升】,带你深入理解掌握!

前言&#xff1a;哈喽&#xff0c;大家好&#xff0c;我是前端菜鸟的自我修养&#xff01;今天给大家分享经典面试题【作用域、闭包、变量提升】&#xff0c;并提供具体代码帮助大家深入理解&#xff0c;彻底掌握&#xff01;原创不易&#xff0c;如果能帮助到带大家&#xff0…

OS复习笔记ch12-1

文件系统 概述 文件是大多数应用程序的核心要素&#xff0c;文件系统是操作系统对用户来说最重要的部分之一。 本章的主要内容见下图&#xff1a; 文件&#xff0c;大家耳熟能详的就是的docx、pdf、jpg、MP4等各种后缀文件&#xff0c;根据任务需要文件又分成了文本、图片、…

java小代码(1)

代码 &#xff1a; 今日总结到此结束&#xff0c;拜拜&#xff01;

(经验)高考填报志愿,有哪些坑你需要避开?

高考年年考&#xff0c;填报志愿的却年年都是新手.....哪些关于高考填报志愿的坑&#xff0c;依旧还继续坑....是时候做些改变了。过来人写的几点避坑&#xff0c;希望给这届新人做参考。 1、不要什么热门就报什么&#xff0c;因为有些东西别人学得很快&#xff0c;而我慢的像蜗…

springboot+mysql 心理健康咨询管理系统-计算机毕业设计源码031706

摘 要 信息化社会内需要与之针对性的信息获取途径&#xff0c;但是途径的扩展基本上为人们所努力的方向&#xff0c;由于站在的角度存在偏差&#xff0c;人们经常能够获得不同类型信息&#xff0c;这也是技术最为难以攻克的课题。针对心理健康咨询管理系统等问题&#xff0c;对…

【鸿蒙】 模拟器运⾏

【鸿蒙】HUAWEI DevEco Studio安装-CSDN博客 【鸿蒙】创建第⼀个鸿蒙项⽬-CSDN博客 点击 Tools 菜单下的 Device Manager 点击 Install &#xff0c;安装模拟器 下载模拟器相关的SDK&#xff0c;点击 Finish 选择安装⽬录&#xff0c;点击 New Emulator 选择设备类型&#…

whisper 模型源码解读

whisper官方源码 whisper 模型官方代码&#xff1a;https://github.com/openai/whisper/blob/main/whisper/model.py &#xff1b;注释如下 import base64 import gzip from dataclasses import dataclass from typing import Dict, Iterable, Optionalimport numpy as np impo…

【动态规划】1130. 叶值的最小代价生成树

1130. 叶值的最小代价生成树 难度&#xff1a;中等 力扣地址&#xff1a;https://leetcode.cn/problems/minimum-cost-tree-from-leaf-values/description/ 题目内容 给你一个正整数数组 arr&#xff0c;考虑所有满足以下条件的二叉树&#xff1a; 每个节点都有 0 个或是 2 个…