将工程内的组件 集成并发布到私有仓库以及后续联动运行(热启动)

将工程内的组件 发布到私有仓库

背景与简介
1、项目的数据
私有仓库地址: 【】
私有仓库账号/密码: 【】
组件包名称: 【@ciec/ciec-component-pc】
组件包项目git地址:【 】
node版本:【】
2、文献链接
a)t
b)
3、注意
后期开发使用,只需要关注五、六段落即可

一、组件包准备(待完善)

1、新建一个项目文件夹(项目名称)目录如下;

  • lib
  • components —— 该文件夹下存放所有从项目中原封不动复制过来的组件(待修改)
  • assets —— 从项目中原封不动复制过来的、会被打包工具处理的静态资源
  • public —— 从项目中原封不动复制过来的、不会被打包工具处理的静态资源
    • types —— ts类型
  • utils —— 从项目中原封不动复制过来的公共方法
  • index.js —— 通过Vue.component(),注册全局组件方法
  • src
    • main.js —— 预留
    • App.vue —— 预留
  • package.json —— 修改name、version、description、author等基础项目信息
    修改项目的入口"main": “lib/index.js”,
    还需注意name的命名为后续组件库包publish的名称
    如果在某个文件夹下,命名则为**“文件夹名称/项目名称”**
  • vue.config.js
  • .npmrc
  • .gitignore
  • .eslintignore
  • .editorconfig
  • postcss.config.js
  • readme.md—— 项目的描述性文件
    • tsconfig.json —— 修改alias文件名别,paths字段中改为@不再指向src,而是指向lib, “@/": ["lib/”]
  • …其他必须的配置文件

2、components中组件复制,需要改造的地方
a) API接口请求
b) config,文件上传使用了项目中src/config信息
c) store,有的使用了Vuex,或者qiankun的store
d) AppModule,比如导出等,打开了主应用的导出弹窗
e) 路由Route,比如面包屑
f) 其他的暂时没有考虑到

二、组件包代码上传git

1、现在github相应的位置建立一个空的项目;
2、将组件包的代码复制过来,然后提交代码push到远程仓库即可

三、组件包发布

0、私有库准备
如果你还没有一个私有的npm仓库,你需要先搭建一个。你可以使用Verdaccio等工具来快速搭建一个私有的npm仓库。
1、账号登录对应仓库

npm login --registry 仓库地址

2、没有账号,则注册,添加对应仓库账号

npm adduser --registry 仓库地址

3、修改package.json中的version版本号,然后发版

npm publish --registry 仓库地址

4、删除组件库中对应的组件包

npm unpublish --force 组件包名称 --registry 仓库地址

四、项目内使用组件包中的组件

0、项目准备
在你的本地开发环境中,将npm的源配置为你的私有仓库地址。这可以确保当你发布组件库时,它会被上传到你的私有仓库而不是公共的npm仓库。

//.npmrc
registry=https://registry.npmmirror.com/
@ciec:registry=私有仓库地址/

1、项目仓库中的组件包

yarn add 组件包名称
yarn add 组件包名称 --registry 仓库地址 //* 没有配置.npmrc时

2、业务内使用

<template><div><CiecBaseSearchTableref="baseSearchTable":queryForm.sync="queryForm":dataSource.sync="dataSource":searchFormConfig="searchFormConfig":tableConfig="searchTableConfig"@eventHandler="handleEventHandler"></CiecBaseSearchTable></div>
</template>
<script lang="ts">
@Component({name: `${baseConfig.ID}List`,components: {}
})
export default class extends Vue {//todo 具体的业务逻辑
}
</script><style lang="scss" scoped>
</style>

五、本地联动运行(待完善)

todo 启动本地的组件包代码、启动本地的主子应用,修改本地的组件包代码,页面可动态刷新
注意:每次通过yarn link 组件包、yarn add 组件包,必须重新运行yarn dev
可以使用npm 也可以使用yarn命令

3 ways to test your components locally before publishing them to npm
A.npm link(yarn link)
1、组件库项目yarn link 创建全局的软链接 (可以通过yarn unlink 取消全局的软连接)

yarn link
yarn unlink //* 取消全局的软连接

2、子应用运行yarn link 组件包名称 使用软连接(可以通过yarn unlink 组件包名称,取消使用软连接)

yarn link @ciec/ciec-component-pc
yarn unlink @ciec/ciec-component-pc //* 取消使用软连接

3、子应用运行yarn dev

yarn dev

4、修改组件库项目代码
因为是通过软连接的形式链接过去的,既可以修改组件库的工程,也可以直接修改子应用node_modules/@ciec/ciec-component-pc中的文件,修改后,子应用会重新运行,最后就可以去页面查看改动了
5、开发完毕之后就可以进行“六、组件库发布”了
B、npm pack(待补充)

C、yalc(待补充)

D、使用包本地路径安装
1、子项目运行yarn add 组件包地址

yarn add /Users/haoyuzhang/Desktop/ERP/ciec-component-pc

2、子应用运行yarn dev

yarn dev

3、修改组件库项目代码
因为是通过下载本地的文件,生成六一份组件包的副本,不可直接通过修改组件库的工程代码联调(子应用的node_modules/@ciec/ciec-component-pc代码不会更新),只可以修改子应用node_modules/@ciec/ciec-component-pc中的文件,子应用会重新运行,最后就可以去页面查看改动了
4、开发完毕之后,需要将代码从子应用的node_modules/@ciec/ciec-component-pc复制到组件包的本地工程中,就可以进行“六、组件库发布”了

六、组件库发布(0830)

1、组件库工程
●根据需求进行代码修改;
●修改package.json中的版本号version,有序加1
“version”: “0.1.14”,

●在对应的分支,代码提交git(项目开发中,直接在master开发)

git pull
git add .
git commit -m 'add 🌞【common】Initial commit —— 0.1.14'
git push

●组件库包发布

npm publish --registry 私有仓库地址

2、引用组件库的工程
●确保node版本正确,下载(切换到)16.14.2

node -v //* 查看node
n 16.14.2 //* 下载
n //* 进行切换

●下载最新的组件库包

 yarn add @ciec/ciec-component-pc

●将node切换到原来的版本(可能某些人在v16.14.2会运行报错)

n //* 进行切换

●运行当前项目

yarn dev

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

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

相关文章

docker安装配置、docker命令

一、CentOS7安装docker 1、安装 Docker CE 支持 64 位版本 CentOS 7&#xff0c;并且要求内核版本不低于 3.10&#xff0c; CentOS 7 满足最低内核的要求&#xff0c;所以我们在CentOS 7安装Docker。 卸载旧docker 如果之前安装过旧版本的Docker&#xff0c;可以使用下面命令…

DFS、BFS、Union-Find:找出图中省份数量的最佳方法

题目理解 问题描述&#xff1a; 有 n 个城市&#xff0c;其中一些城市之间直接相连&#xff0c;另一些则不相连。如果城市 a 和城市 b 直接相连&#xff0c;且城市 b 和城市 c 直接相连&#xff0c;那么城市 a 和城市 c 间接相连。省份被定义为一组直接或间接相连的城市&…

美团2024秋招编程题:小美的red子序列数量之和

题目为&#xff1a; 小美有一个字符串&#xff0c;小美想知道这个字符串的所有连续子串中&#xff0c;red 子序列的数量之和。 子串是指从原字符串中&#xff0c;连续的选择一段字符组成的新字符串。 定义 red 子序列为从原字符串中从左到右依次取出r、e和d组成的新字符串。 …

1999-2023年上市公司年报文本数据(PDF+TXT)

1999-2023年上市公司年报文本数据&#xff08;PDFTXT&#xff09; 1、时间&#xff1a;1999-2023年 2、来源&#xff1a;上市公司年度报告 3、范围&#xff1a;A股上市公司&#xff0c;5600企业&#xff0c;6.3W份 4、格式&#xff1a;PDFTXT 5、下载链接&#xff1a; 199…

C#实现快速傅里叶变换(FFT)

1、FFT类 using System; using System.Collections.Generic; using System.Linq; using System.Runtime.InteropServices.ComTypes; using System.Text; using System.Threading.Tasks;namespace DFT_FFTApp.Utils {public class FFT{/// <summary>/// FFT/// </summ…

Java12 Excel和Json文件解析

Excel文件解析&#xff1a; Excel文件解析(EasyExcel框架解析) Excel文件解析(Apache POl框架解析) &#xff08;1&#xff09;Excel文件对象创建&#xff1a;POI 《1》创建工作簿对象: XSSFWorkbook workbooknew XSSFWorkbook&#xff08;&#xff09;&#xff1b; 《2》创…

SQL语句复习

一、CTE和WITH CTE是一种命名的临时结果集,CTE是通过WITH子句来定义的. WITH cte_name (column1, column2, ...) AS (-- CTE查询定义SELECT ... ) -- 主查询 SELECT ... FROM cte_name WHERE ... column1, column2, ... 是可选的列名列表&#xff0c;通常用于给CTE的列命名。…

c++11新特性-lambda表达式

1. 概念 lambda表达式实际上是一个匿名类的成员函数&#xff0c;该类由编译器为lambda创建&#xff0c;该函数被隐式地定义为内联。因此&#xff0c;调用lambda表达式相当于直接调用它的operator()函数&#xff0c;这个函数可以被编译器内联优化&#xff08;建议&#xff09;。…

Ubuntu服务器时间和本地时间不一致怎么解决——Linux的Local Time和RTC time

最近一直在搞大模型的相关工作&#xff0c;所以一直在用Linux服务器&#xff0c;前面的文章里也提到了&#xff0c;我用的是一台Dell PowerEdge R730xd。 但在使用中发现&#xff0c;IDRAC中的日志时间和本地时间存在时差&#xff0c;大概相关8小时。 对于技术人员&#xff0c…

数据结构:树形结构(树、堆)详解

数据结构&#xff1a;树形结构&#xff08;树、堆&#xff09;详解 一、树&#xff08;一&#xff09;树的性质&#xff08;二&#xff09;树的种类二叉树多叉树满N叉树完全N叉树 &#xff08;三&#xff09;二叉树的实现1、二叉树结构定义2、二叉树功能实现&#xff08;1&…

windows安全中心永久卸载工具分享

使用方法 博客&#xff1a;h0ck1r丶羽~从零到一 卸载工具下载链接&#xff1a; 夸克网盘分享 一路回车&#xff0c;选项Y即可 耐心等待几秒种&#xff0c;自动重启 此时打开windows安全中心&#xff0c;已经完全不能使用了&#xff0c;响应的杀毒功能也关了 往期推荐 【渗透测…

机器人末端阻抗控制Simulink仿真

机器人末端阻抗控制是一种重要的机器人控制策略&#xff0c;它主要用于调节机器人末端执行器与环境之间的动态关系&#xff0c;以保证机器人在适当的柔顺性下进行轨迹跟踪或与环境交互。在使用Simulink进行机器人末端阻抗控制仿真时&#xff0c;主要步骤可以归纳如下&#xff1…

QT做一个USB HID设备识别软件

1.下载 HidApi库&#xff1a;GitHub - yigityuce/HidApi: Human Interface Device Api (HidApi) with C 2.pro文件添加 DEFINES - UNICODE LIBS -lsetupapi 3.建立三个对象 HidApi hidApi;HidDevice hidDev;//HID设备HidDeviceList devList;//HID设备列表 4.对 HID 设备进…

JavaWeb - Spring Boot

Spring 官网​​​​​Spring | Home Spring Boot Spring Boot是一个由Pivotal团队提供的开源框架&#xff0c;旨在简化Spring应用的初始搭建以及开发过程。在Spring Boot项目中&#xff0c;通常会有Controller、Service、Mapper和Entity等层次结构。下面将详细介绍这些层次的…

用 Higress AI 网关降低 AI 调用成本 - 阿里云天池云原生编程挑战赛参赛攻略

作者介绍&#xff1a;杨贝宁&#xff0c;爱丁堡大学博士在读&#xff0c;研究方向为向量数据库 《Higress AI 网关挑战赛》正在火热进行中&#xff0c;Higress 社区邀请了目前位于排行榜 top5 的选手杨贝宁同学分享他的心得。下面是他整理的参赛攻略&#xff1a; 背景 我们…

Serilog文档翻译系列(三) - 基础配置

Serilog 使用简单的 C# API 来配置日志记录。当需要外部配置时&#xff0c;可以&#xff08;慎用&#xff09;通过使用 Serilog.Settings.AppSettings 包或 Serilog.Settings.Configuration 包进行混合配置。 创建日志记录器 日志记录器是通过 LoggerConfiguration 对象创建的…

基于springboot的汽车租赁管理系统

文章目录 项目介绍主要功能截图:部分代码展示设计总结项目获取方式🍅 作者主页:超级无敌暴龙战士塔塔开 🍅 简介:Java领域优质创作者🏆、 简历模板、学习资料、面试题库【关注我,都给你】 🍅文末获取源码联系🍅 项目介绍 基于springboot的汽车租赁管理系统,java…

【RabbitMQ】快速上手

目 录 一. RabbitMQ 安装二. RabbitMQ 核心概念2.1 Producer 和 Consumer2.2 Connection 和 Channel2.3 Virtual host2.4 Queue2.5 Exchange2.6 RabbitMQ 工作流程 三. AMQP四. web界面操作4.1 用户相关操作4.2 虚拟主机相关操作 五. RabbitMQ 快速入门5.1 引入依赖5.2 编写生产…

stm32 8080时序驱动lcd屏幕

PSAM使用的硬件接口 PSAM读时序 PSAM写时序 相关时序 PSAM_RCRx NOR 和PSRAM控制寄存器

28. 双耳配对 - 配置

1. 概述 通过MAC地址的最后一位的奇偶来判断左右耳 2. 验证 右耳:奇数(主耳)-》BT ADDR: 12:42:22:34:34:6d 左耳:偶数(从耳)-》BT ADDR: 12:42:22:34:34:6c