我们公司开发环境为内网环境,因此在开发或者测试流程上都有不可预知的问题等着。这次我使用vue3开发前端,需要在jenkins上设置自动化部署,使测试可以一键点击部署。

环境介绍

开发环境

  • 操作系统:win10
  • node版本:V14.15.1

测试环境

  • 操作系统:CentOS6.5
  • node版本:V10.8.0

问题汇总

测试环境无法使用V10.8.0编译Vue3

Error: Cannot find module 'worker_threads'at Function.Module._resolveFilename (internal/modules/cjs/loader.js:581:15)at Function.Module._load (internal/modules/cjs/loader.js:507:25)at Module.require (internal/modules/cjs/loader.js:637:17)at require (internal/modules/cjs/helpers.js:20:18)at Object.<anonymous> (D:\Project\sjjk-web\node_modules\vite\dist\node\chunks\dep-971d9e33.js:25:20)at Module._compile (internal/modules/cjs/loader.js:689:30)at Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10)at Module.load (internal/modules/cjs/loader.js:599:32)at tryModuleLoad (internal/modules/cjs/loader.js:538:12)at Function.Module._load (internal/modules/cjs/loader.js:530:3)

因为个人电脑node版本太低所以导致报了该错误,需要升级到开发环境的node版本V14.15.1,这时又遇到了第二个问题。

CentOS6.5不支持安装nodeV14.15.1版本

node: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.14' not found (required by node)
node: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.18' not found (required by node)
node: /usr/lib64/libstdc++.so.6: version `CXXABI_1.3.5' not found (required by node)
node: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.15' not found (required by node)
node: /lib64/libc.so.6: version `GLIBC_2.16' not found (required by node)
node: /lib64/libc.so.6: version `GLIBC_2.17' not found (required by node)
node: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by node)

CentOS6.5竟然缺少glibc网上确实有一些案例进行升级libstdc++.so.6,由于个人对于linux的属性程度没有那么好,因此我没有对操作系统的库进行升级,而是选用公司内网中其他的一台CentOS7的服务器。想通过配置Jenkins的Send files or execute commands over SSHExecute Shell script on remote host using ssh两个功能操作远程服务器。

使用npm run build命令使报esbuild不是当前平台版本

You installed esbuild on another platform than the one you're currently using.
This won't work because esbuild is written with native code and needs to
install a platform-specific binary executable.Specifically the "esbuild-windows-64" package is present but this platform
needs the "esbuild-linux-64" package instead. People often get into this
situation by installing esbuild on Windows or macOS and copying "node_modules"
into a Docker image that runs Linux, or by copying "node_modules" between
Windows and WSL environments.

由于内网没有搭建npm私服,基本上每个项目都是从外网下完包后拷到内网开发。在配置Jenkins时我将当前项目使用的node_modules拷贝到Jenkins的workspace目录下对应的当前项目目录中。Jenkins原理就是pull远程git上设定的分支,然后执行设定的命令。根据这原理我投机取巧就把node_modules直接拷贝进去。结果看了下node_modules中的esbuild版本果然是esbuild-windows-64,这可怎么办呢,根据报错看了下esbuild源码,基本上就是根据不同的平台加载不平台版本的esbuild-平台包,我想直接下包不就可以了吗,结果打开npm官网后,不让下载那个linux平台的包,最后只好找个公共上网机安装了CentOS7虚拟机,重新下载包后放到内网服务器对应的目录下。

使用tar命令打包整个项目时丢失以.开头的项目内部文件

项目根目录中包含.env,.env.development,.env.production环境变量文件。我的发布项目流程是:
Jenkins服务器拉取代码=》所有代码打tar包=》发送到远程服务器(CentOS7系统)=》远程服务器解压tar包=》使用npm命令进行build=》将打包后的文件拷贝到nginx中
最后结果为访问nginx后路径跳到http://ip:port/undefind/项目名,这是由于在配置路径时我使用了环境变量文件中的文件,问题就出在第二步所有代码打tar包,在打包的时候使用tar -zcvf 项目.tar.gz *进行打包,结果该命令无法将.开头的文件添加到tar包。网上查找后可以使用tar -zcvf 项目.tar.gz * .[!.]*


在Jenkins点击立即构建OK了,nginx配置就不写了。
内网开发真的会遇到很多无法处理的问题,可能外网开发很简单就可以解决的问题,在内网环境很难处理。以上为我自己在内网配置Jenkins构建vue3遇到的问题,可能有些问题会有更好的解决方案,希望大家可以帮我指正,感激,感激,感激!!!

记一次内网jenkins自动发布血泪史相关推荐

  1. 华为pat地址转换,以及内网web服务器发布

    实验名称:华为pat地址转换,以及内网web服务器发布 实验拓扑图: 3. 实验目的 : 1.使内网通过pat转化出去上外网 2.使用静态pat做端口映射,发布web服务器 3.配置交换机远程登录 4 ...

  2. jenkins是什么_使用 Jenkins 自动发布服务到 Kubernetes

    使用 Jenkins 自动发布服务到 Kubernetes Jenkins 是什么 一个比较流行的开源 CI/CD 工具 CI/CD : 持续集成/持续部署 Kubernetes 是什么 容器化工具 ...

  3. 6.Jenkins-代码更新Jenkins自动发布项目

    代码更新Jenkins自动发布项目 目的:实现开发一提交,jenkins就自动发布,无需人工干预 1.找到对应的项目,然后找到构建触发器 勾选 Build when a change is pushe ...

  4. jenkins编译java_在Window上使用Jenkins自动发布Java工件

    jenkins编译java 这篇文章将展示如何使用Jenkins Continuous Integration自动执行Java Web应用程序(使用MYSQL DB和基于Hibernate ORM在基 ...

  5. 在Window上使用Jenkins自动发布Java工件

    这篇文章将展示如何使用Jenkins Continuous Integration自动执行Java Web应用程序(使用MYSQL DB和基于Hibernate ORM在基于REST的Jersey2 ...

  6. 树莓派 + SSD启动 + CentOS 8 64位 + 内网穿透 + 自动温控风扇 + SMB服务 + 文件分类备份

    功能描述 上闲鱼拿下了个树莓派4B 8G,300块,我仿佛听见有人说"哇"?哦,其实它的外显输出有点问题,但我是不关心,真香. 到手之后自然是传统装机,点到为止,64位centos ...

  7. Devops之Gradle SpringBoot构建打包工程jar、搭建jenkins自动发布

    本文逐渐涉及当前敏捷开发中非常火的DevOps相关的技术,也就是自动化开发运维.整体偏向于环境搭建,整体学习路线为: (1)SpringBoot+Gradle+Nexus远程仓库构建打包工程jar ( ...

  8. 把自己电脑做成web服务器+内网穿透并发布网页

    把自己电脑做成web服务器加内网穿透发布网站. 前言:由于学校WiFi为内网ip,且WiFi 为动态ip 由于为动态IP,每次登陆都会换IP地址,所以建议网线连接或者一直开机不断网,否则每次开机都要重 ...

  9. 【Ubuntu】开启ssh服务/配置ftp内网穿透/自动连接校园网

    前言 想让工作电脑开启ssh服务,这样就可以在校外进行远程访问办公,电脑的系统为Ubuntu20.04 开启ssh服务 首先查看当前Ubuntu安装的SSH服务: dpkg -l | grep ssh ...

最新文章

  1. 统计简单学_基本概念
  2. RouteHttpMap要添加的引用
  3. nitrous.io mysql_云IDE:Nitrous.io的介绍以及活用手段
  4. php 慢查询日志设置查看
  5. mydate97设置时间
  6. 企业云存储 | 为什么越来越多的NAS用户转向企业云盘?
  7. python内置数据类型列表_python数据类型内置方法 字符串和列表
  8. java代码翻译器网页版_制作一个Java即时翻译器——网页抓取调用百度翻译API
  9. java qq 邮箱发送错误以及端口号
  10. Windows环境搭建Red5流媒体服务器指南
  11. pwm波控制舵机原理(转)
  12. php实现微信公众号群发消息接口(thinkphp3.2.3)
  13. 英文信详解:申请信、推荐信等等
  14. AntD Selected 多选
  15. 手机打字测速软件简版
  16. 基于Go语言GoFrame+Layui搭建MVC项目教程
  17. sprintf()和itoa()的区别
  18. 华为网络配置(BGP)
  19. vue设置浏览器自动打开网址为 http://0.0.0.0:8080/ 的网页可能暂时无法连接,或者它已永久性地移动到了新网址。
  20. 开发必备神器,你值得拥有!

热门文章

  1. 对python的认识作文500字_关于启示的作文500字
  2. mySQL中stuff,sql stuff函数的语法和作用
  3. 信息系统项目管理师案例分析万金油
  4. TCHAR * 转为char *   和 char  * 转为 TCHAR *
  5. [体检]悲从中来,伤不起
  6. Photoshop(P图)实用技巧介绍
  7. SpringBoot+Mybatis-Plus项目接入ClickHouse数据源
  8. 计算机毕业论文乐谱播放器,给大家推荐一个超强的播放器!我刚发现的。居然显示乐谱...
  9. 抑或运算符(位运算和逻辑运算符详解)----Java
  10. python爬虫requests.post()_网页爬虫 - Python requests爬虫,如何post payload里的数据,谢谢!...