当前位置: 首页 > news >正文

DockerCompose+Jenkins+Pipeline流水线打包Vue项目(解压安装配置Node)入门

场景

DockerCompose+Jenkins+Pipeline流水线打包SpringBoot项目(解压安装配置JDK、Maven等)入门:

DockerCompose+Jenkins+Pipeline流水线打包SpringBoot项目(解压安装配置JDK、Maven等)入门-CSDN博客

以上使用流水线配置和打包springboot后台项目,如果要使用流水线和配置node打包vue项目,

可按如下步骤。

注:

博客:
霸道流氓气质-CSDN博客

实现

1、按照上面博客步骤搭建jenkins并安装node插件。

2、下载node的linux的离线压缩包

下载地址:

Node.js

这里项目编译使用的node的版本是14.16,所以下载指定版本的压缩包

Node.js — Node v14.16.1 (LTS)

下载linux上64位版本,比如这里是node-v14.16.1-linux-x64.tar.xz

然后将其解压并移动到jenkins容器映射路径下的tool目录下,使解压后的bin目录位于tool下的node目录下

这里是在windows下,所以使用解压软件管理员模式运行,如果是linux上直接运行解压命令,使路径

同上面一致即可。

3、全局工具配置-NodeJS安装

新增NodeJS,别名这里叫node,记住这个别名,后续与jenkinsfile中tool一致。

然后安装路径为

/tool/node

4、配置npm的镜像源为淘宝镜像源

为了提高下载依赖的速度,需要修改npm的镜像源

系统管理-Managed files-Add a new Config

选择类型为Npm config file

记住生成的配置文件的id和名称,后面会用到

然后就可以在配置文件的Content中进行npm的配置修改了。

比如这里修改镜像源为淘宝镜像

将registry修改为如下

registry = https://registry.npmmirror.com

然后提交保存。

5、新建任务-流水线项目,配置gitee地址,SCM以及git凭证与上面一致

然后在前端代码仓库的根目录下新建Jenkinsfile文件

然后修改内容为:

pipeline {agent anytools {nodejs 'node'}stages {stage('编译构建') {steps {nodejs(nodeJSInstallationName: 'node', configId: '14997e88-6fc1-42bb-b9e8-bc54fe8aff81') {// npm 编译安装sh 'node -v'sh 'npm install'sh 'npm run build:prod'}}}}post {always {echo '构建结束,结果:'}success {echo '构建成功'}failure {echo '构建失败'}}
}

注意这里的tools中左边是nodejs固定的,右边是对应上面安装node时的别名。

然后下面配置nodejs时nodeJSInstallationName也是指定node的别名,后面configId指定上面添加全局配置文件

时生成的id,代表npm会使用这个配置文件。

后面就是跟的具体的构建指令。

6、点击立即构建测试效果

第一次构建需要加载依赖,时间较长

构建成功之后会在相应的映射目录下生成dist包文件。

7、踩坑记录

构建时提示:

Error: Cannot find module '../lib/utils/unsupported.js'
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:603:15)

需要将容器停掉,然后将映射路径下node下面所有文件删除,然后重新解压移动一遍,再重新启动容器。

如果是在linux上,则卸载重装node。

构建时提示:

request to https://registry.npm.taobao.org/...failed,reason:certificate has expired

这是因为一开始配置的淘宝镜像不对,网上较老的教程写的淘宝镜像过期了!

在 2021 年,淘宝就发文称,npm 淘宝镜像已经从 registry.npm.taobao.org 切换到了 registry.npmmirror.com。

旧域名也将于 2022 年 5 月 31 日停止服务(不过,直到今天 HTTPS 证书到期才真正不能用了)。

相关文章:

  • 【线性代数】向量空间,子空间,向量空间的基和维数
  • 在Linux系统中,使用OpenSSL生成CSR(Certificate Signing Request),并同时生成PEM格式的公钥和私钥的命令如下:
  • 机器视觉:光源的类型以及主要参数
  • 设置 OAuth2 访问令牌的签发时间 (issuedAt) 和过期时间 (expiresAt)
  • 前端面试项目细节重难点(已工作|做分享)(九)
  • Eureka到Nacos迁移实战:解决配置冲突与启动异常
  • Superset二次开发之查询GitHub不同版本修改的文件列表 (Python 方案)
  • srchref,fetchajax,cookiesession
  • 机器学习之数学基础 时间复杂度和空间复杂度
  • [论文笔记]Query Rewriting for Retrieval-Augmented Large Language Models
  • hadoop和hbase对应版本关系
  • SpringBoot之请求映射原理
  • GIS之arcgis系列09:arcpy实现克里金差值
  • 【计算机毕业设计】258基于微信小程序的课堂点名系统
  • 开源项目-Docker部署学之思管理系统
  • php的引用
  • @angular/forms 源码解析之双向绑定
  • 【node学习】协程
  • 2017届校招提前批面试回顾
  • Android框架之Volley
  • Fundebug计费标准解释:事件数是如何定义的?
  • Golang-长连接-状态推送
  • Gradle 5.0 正式版发布
  • JavaScript中的对象个人分享
  • leetcode388. Longest Absolute File Path
  • MySQL用户中的%到底包不包括localhost?
  • nfs客户端进程变D,延伸linux的lock
  • Python 反序列化安全问题(二)
  • Python 基础起步 (十) 什么叫函数?
  • spring boot下thymeleaf全局静态变量配置
  • 和 || 运算
  • 基于Mobx的多页面小程序的全局共享状态管理实践
  • 如何打造100亿SDK累计覆盖量的大数据系统
  • 小程序button引导用户授权
  • MiKTeX could not find the script engine ‘perl.exe‘ which is required to execute ‘latexmk‘.
  • 3月7日云栖精选夜读 | RSA 2019安全大会:企业资产管理成行业新风向标,云上安全占绝对优势 ...
  • 数据库巡检项
  • #13 yum、编译安装与sed命令的使用
  • (3)选择元素——(14)接触DOM元素(Accessing DOM elements)
  • (4) openssl rsa/pkey(查看私钥、从私钥中提取公钥、查看公钥)
  • (libusb) usb口自动刷新
  • (TipsTricks)用客户端模板精简JavaScript代码
  • (undone) MIT6.824 Lab1
  • (undone) MIT6.824 Lecture1 笔记
  • (附源码)springboot学生选课系统 毕业设计 612555
  • (附源码)计算机毕业设计SSM疫情居家隔离服务系统
  • (三)elasticsearch 源码之启动流程分析
  • (实战)静默dbca安装创建数据库 --参数说明+举例
  • (万字长文)Spring的核心知识尽揽其中
  • (译) 理解 Elixir 中的宏 Macro, 第四部分:深入化
  • (转)es进行聚合操作时提示Fielddata is disabled on text fields by default
  • (转)创业家杂志:UCWEB天使第一步
  • .MyFile@waifu.club.wis.mkp勒索病毒数据怎么处理|数据解密恢复
  • .NET Framework、.NET Core 、 .NET 5、.NET 6和.NET 7 和.NET8 简介及区别
  • .NET WebClient 类下载部分文件会错误?可能是解压缩的锅