多个项目公用组件库设计

前端情景题:如何推动多个前端团队之间的组件库规范统一 在现代前端开发的浪潮中,组件库已经成为构建高效、可维护和一致性用户界面的基石。无论是大型企业还是中小型团队,组件库都扮演着不可或缺的角色。它不仅能够提升开发效率,还能确保产品在视觉和交互上的统一性。然而,当一个组织内存在多个前端团队时,组件库的规范往往会因团队间的独立运作而变得碎片化。这种不统一的现象不仅增加了开发和维护的成本,还可能对用户体验造成深远的影响。今天,我们将深入探讨组件库在前端开发中的核心价值,剖析多个团队间规范不统一所带来的具体问题,并阐述为何推动规范统一是当务之急。 阅读详情

项目背景**

  1. A 项目在开发过程中需要独立一部分业务出去用作内网访问(财务模块,库存等模块), 于是在A项目的基础上分割出B项目(Vue, Element-ui)

  2. C项目在开发完成后暂时搁置, D项目作为C项目的另一条业务线,部分业务逻辑, 组件和C项目重叠(React, Dva, Ant-ui)

遇到的问题
A项目和B项目有很大一部分公用文件

  • Js(校验js, 业务数据处理的js等)
  • css(reset.css等)
  • 图标
  • 字体
  • 组件(基础组件, 业务组件)

解决方案

  1. 建立git仓库管理公用文件

  2. 将仓库放在项目根目录使用webpac中的resolve.alias中配置的别名使用

以下是目录结构以及别名配置


├── publicResource                                         // 公共代码目录 别名$pRoot 
│   ├── publicBasicsComponents                             // 公共基础组件 别名$pRootBC 
│   │   ├── ...                              			
│   ├── publicBusinessComponents                           // 公共业务组件 别名$pRootBuC 
│   │   ├── ...                              
│   ├── publicStatic                                   // 公共静态文件 别名$pRootStatic 
│   │   ├── publicDocs                                 // 公共模版文件  
│   │   ├── publicFonts                                // 公共字体文件 
│   │   ├── publicImgs                                 // 公共图片文件 
│   ├── publicUtils                                   // 公共方法 别名$pRootUtils 
│   │   ├── ...     
│   │   index.js                                    // 引入共用组件
│   src
│   package.json	

webpack配置


// webpack.config.js
resolve: {
    alias: {
        'vue$': 'vue/dist/vue.esm.js',
        '@': resolve('src'),
        '$pRoot': resolve('publicResource'),
        '$pRootBC': resolve('publicResource/publicBasicsComponents'),
        '$pRootBuC': resolve('publicResource/publicBusinessComponents'),
        '$pRootStatic': resolve('publicResource/publicStatic'),
        '$pRootUtils': resolve('publicResource/publicUtils'),
    }
},

公用组件配置


// publicResource/index.js
import Vue from 'vue'

// 公用js
import api from '$pRootUtils/api'  
Vue.prototype.$api = api

// 公用组件
import TestComponents from '$pRootBC/test'
Vue.component('TestComponents', TestComponents)

项目中引入仓库的方法


// src/main.js
import '../publicResource'

优化点

使用脚本来自动化代码更新(shell, powershell)

  1. 每次新建分支使用脚本自动拉取公共代码
mkdir publicResource
cd publicResource
git init
git remote add origin xxxx
git pull origin master
cd ..
  1. 在开发过程中为了保证,代码库是最新的可以写个脚本用来pull
git pull  
cd publicResource
git pull origin master
cd ..

其他优化点

可以使用git子模块来管理公用代码仓库

Delphi办公用品管理系统开发实战源码 数据库是管理系统的核心组成部分,其主要作用包括:功能描述数据存储长期保存结构化数据,如用户信息、库存记录等数据查询快速检索数据,支持多条件筛选与排序数据更新实现增删改操作,保障业务数据的实时性数据一致性通过事务和约束确保数据的完整性与一致性数据安全提供权限控制、加密等机制保障数据安全在Delphi开发中,数据库不仅作为数据载体,更是与业务逻辑紧密结合的中枢。 阅读详情

相关推荐

LabVIEW状态机实战:用STM32+DHT11搭建温湿度监测系统(附完整VI源码)

本文详细介绍了如何利用LabVIEW状态机模式与STM32微控制器、DHT11温湿度传感器构建温湿度监测系统。通过硬件选型、状态机设计、LabVIEW程序实现及系统优化等环节,提供了一套完整的解决方案,并附有VI源码,助力开发者快速实现嵌入式温湿度监测应用。

weixin_42549723的博客 520

一个组件在多个项目中使用

一个组件在多个项目中使用

叮当的猫猫的博客 439

富芮坤FR801xH蓝牙协议栈启动流程和notify实现温度数据主动上传

文章目录一、蓝牙协议栈启动流程1.1 初始化代码1.2 初始化流程1.3 回调函数里的初始化二、notify实现2.1 notify介绍2.2 notify实现2.3.1 定义数据2.3.2 获取连接号conidx2.3.3 gatt_notification函数的使用三、notify温度上传测试3.1 蓝牙调试工具3.2 蓝牙调试器设置3.3 测试结果四、参考链接   基于sdk开发的好处是方便项目的快速落地,现在用的是SDK里面的源文件,目前只是学习FR801xH芯片的特性,裁剪这个SDK需要点时间,

weixin_43810563的博客 4319

多个vue项目公共组件的三种方法

我们可以采取专人维护common包的方式,common的组件编写完成后,将其发布到npm。发布流程如下:在注http://www.npmjs.com册一个账号进入common的控制台,输入命令npm login,按照提示输入刚注册的账号密码输入命令 npm publish 即可当然common这个名字肯定被注册了,这里只做示例,真正使用时需使用一个未在npm中注册的包名。

細水、長流√的专栏 5478

cutlass2.x源码解读之PitchLinearStripminedThreadMap

TensorCoord:使用layout::PitchLinearCoord作为张量坐标。Shape:使用模板参数Shape_作为tile的形状,kThreads:线程总数,定义为模板参数Threads。kElementsPerAccess:每次访问的元素数,定义为模板参数ElementsPerAccess。ThreadAccessShape:线程访问的形状,使用layout::PitchLinearShape定义。内部实现细节:ShapeVec。

jiangjkd的专栏 789

倍福ADS通讯协议深度解析——从握手到数据包的完整旅程

本文以工程师视角,通过Wireshark抓包实战,深度解析了倍福ADS通讯协议的完整工作流程。从TCP三次握手建立连接,到拆解AMS/TCP信封、AMS Header地址与命令解析,再到ADS Data读写请求的载荷构成,完整呈现了一次数据通讯的“旅程”。文章重点剖析了协议包格式,并结合实际案例,提供了基于协议分析的故障排查思路,帮助开发者深入理解并精准调试工业自动化系统通讯。

weixin_29231725的博客 151

vue公用组件多项目使用解决,将包发布到npm上

场景一 若代码为私有的模块,因为某些原因不能发布到公共的npm仓库,但是又需要在多个项目间共享。 解决方法:可以在package.json中来使用git url获取特定的公用代码 1.先新建一个vue项目 vue init webpack rzh-vue-ui 2.在新建项目中加入公共的组件模块 如图所示,我新建了一个packages目录,在目录下加入了Hfooter组件代码, 并在packa...

阑珊伊人 3322

Auto.js实战:从解锁手机到自动阅读的全流程避坑指南(MIUI系统适配版)

本文详细介绍了Auto.js在MIUI系统下的自动化操作全流程优化指南,包括设备唤醒、应用启动、界面交互等关键环节的实战技巧。特别针对MIUI系统的变速检测机制和电源管理策略,提供了有效的避坑方案和性能优化建议,帮助开发者实现从解锁手机到自动阅读的稳定运行。

醉三国 246

Git子模块创建多项目共用组件库

代码】Git子模块创建多项目共用组件库。

日渐肥胖的左 896

uniapp - 热更新提示:WGT安装包中manifest.json文件不存在 | unexpected EOF!报错详细解决,完美搞定WGT安装包中WWW目录下manifest.json不存在问题

uniapp,安卓android,苹果ios,热更新,热更新code:-1202报错,,WGT热更新报错,uniapp热更新wgt出现报错manifest.json文件不存,uniapp安卓苹果软件热更新时出现错误unexpected EOF!如何解决,怎么解决热更新wgt报错,app新版本下载安装报错WGT安装包中manifest.json文件不存在,WGT安装包中WWW目录下manifest.json不存在,uniapp热更新报错安装失败[-1201]:WGT/WGTU文件格式错误,uniapp-wgt

✅ 精选推荐文章 1万+

用「OpenClaw」打造新媒体运营神器:小红书/公众号全自动选题→创作→排版→发布全流程

对于新媒体运营的从业者来说,AI不是要取代运营人员,而是把他们从繁琐的重复劳动中解放出来,专注于更核心的内容策略、用户运营、品牌建设,这才是AI在传统行业落地的真正价值。这是最终输出可发布内容的核心智能体,我们通过「OpenClaw」的Prompt工程,结合不同平台的排版规范,实现了一键生成符合要求的排版,完全替代人工重复劳动。这套系统的落地,不是技术的炫技,而是真正用AI解决了新媒体运营的核心痛点:用自动化替代重复的人工劳动,用数据决策替代经验主义,用全闭环执行替代纸上谈兵的建议。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 198

计算机毕业设计 办公用品管理系统的设计与实现 Java实战项目 附源码+文档+视频讲解

办公用品管理系统是一个集办公用品采购、库存管理、申领审批于一体的自动化平台。系统旨在提高管理效率,优化资源分配,减少资源浪费,并提升员工满意度。通过精确的库存管理和采购计划,系统支持企业管理层制定更合理的决策,是企业行政管理的得力助手。

m0_74181697的博客 1878

【AI】在RK3576上,使用RKNN实现MeloTTS(文本转语音)

在瑞芯微的RK3576上实现TTS(文本转语音)功能,使用CPU实现时,几乎把CPU资源全部耗尽,没有实用价值。通过将MeloTTS转为onnx,再转为RKNN,来使用RK3576的NPU硬件加速,成功实现TTS。

郭老二 564

移动Web UI组件库汇总

1、 Ant Design Mobile介绍:一个基于 Preact / React / React Native 的 UI 组件库组件库地址:https://mobile.ant.design/index-cn组件库来源:蚂蚁金服体验技术部 2、SUI Mobile介绍:SUI Mobile 是一套基于 Framework7 ...

Andrelia的博客 1万+

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

antd 函数组件_如何打造一套vue组件库

开篇组件库能帮我们节省开发精力,无需所有东西都从头开始去做,通过一个个小组件拼接起来,就得到了我们想要的最终页面。在日常开发中如果没有特定的一些业务需求,使用组件库进行开发无疑是更便捷高效,而且质量也相对更高的方案。目前的开源组件库有很多,不管是react还是vue的体系里都有很多非常优秀的组件库,比如我经常使用的就有elementui和iview。当然也还有其他的一些组件库,他们的本质其实都是为...

weixin_29483277的博客 647

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

uniapp—自定义并引用公用模块

本文总结了uniapp中四种模块化开发方案及其适用场景。针对2000人规模项目,推荐组合使用:1)公用JS模块封装工具函数;2)Vue.prototype挂载全局方法;3)Vuex管理动态状态;4)uni_modules实现跨项目复用。文章详细对比了各方案优劣势,并给出目录结构、代码示例、性能优化等实践建议,特别强调团队协作中需注意版本控制、文档注释等规范。对于中大型项目,合理的模块化设计可显著提升开发效率和可维护性。

886

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

从0到1,搭建一个体系完善的前端React组件库

javascript是前端必要掌握的真正算得上是编程语言的语言,学会灵活运用javascript,将对以后学习工作有非常大的帮助。掌握它最重要的首先是学习好基础知识,而后通过不断的实战来提升我们的编程技巧和逻辑思维。这一块学习是持续的,直到我们真正掌握它并且能够灵活运用它。如果最开始学习一两遍之后,发现暂时没有提升的空间,我们可以暂时放一放。继续下面的学习,javascript贯穿我们前端工作中,在之后的学习实现里也会遇到和锻炼到。真正学习起来并不难理解,关键是灵活运用。

2401_85158697的博客 1074

Springboot办公用品管理系统y758m(程序+源码+数据库+调试部署+开发环境)

随着企业规模的扩大和办公自动化程度的提高,传统的手工管理办公用品的方式已经无法满足日益增长的管理需求。因此,开发一个基于Springboot的办公用品管理系统显得尤为重要。该系统能够实现对办公用品的采购、库存管理、领用管理等方面的全面支持,从而提高办公效率,降低管理成本,提升企业整体管理水平。

CK3038的博客 838

Vue3 对组件库组件二次封装的使用,以骨架屏为例

记录下我对组件库再次封装的体会,以及部分优化

shadowflies的博客 1079

组件cdn引入_@lbzui/vue 组件库来了

@lbzui/vue 是一个基于 Material Design 开发的 Vue.js 组件库,目前还处于 BETA 阶段。https://lbzui-vue.lanbizhong.com/已完成 20 个组件、7 个公用类:组件:Backdrop、Button、Card、Checkbox、Dialog、Divider、Drawer、Empty state、FAB、Icon、Icon button...

weixin_35740588的博客 276

vue安装Postcss_@lbzui/vue 组件库来了

@lbzui/vue 是一个基于 Material Design 开发的 Vue.js 组件库,目前还处于 BETA 阶段。https://lbzui-vue.lanbizhong.com/已完成 20 个组件、7 个公用类:组件:Backdrop、Button、Card、Checkbox、Dialog、Divider、Drawer、Empty state、FAB、Icon、Icon button...

weixin_39600837的博客 114

P3-Vue3后台管理系统-路由设计及左侧公用导航栏开发

P3-Vue3后台管理系统-路由设计及左侧公用导航栏开发 1.概述 这篇文章介绍项目的路由设计,和左侧导航栏开发。 2.安装配置Element组件库 2.1.安装Element # 1.进入到项目根路径 cd .\base-learn\ # 2.执行安装命令 - 使用yarn包管理器安装,如果是npm包安装可以查看官网安装介绍 - -S表示开发和生产环境都使用 yarn add element-ui -S 2.2.引用Element 在Element官网复制Element模块 在项目的main

Bruce小鬼 2684

基于Spring Boot + Vue3的办公用品申领管理系统

这是一款基于Spring Boot+Vue3的办公用品申领管理系统,包含完整的后端API和前端界面。系统采用主流技术栈:Spring Boot 2.7+MyBatis-Plus+MySQL+Redis后端架构,Vue3+Pinia+Element Plus前端框架,支持JWT认证。功能包括用户申请办公用品、管理员审批、库存管理等模块,提供用户注册/登录、用品申请、申请审批等完整业务流程。项目结构清晰,包含数据库初始化脚本,支持快速部署和二次开发。系统默认提供管理员账号(admin/admin123)和普通用

qq_24428851的博客 1619

【2027精品毕设分享】基于Spring Boot的办公用品管理系统的设计与实现(附源码资料)前后端分离可完美运行,增删改查,毕设简历必备项目_java项目

本文介绍了一个基于Spring Boot的办公用品管理系统。该系统采用Java开发,集成Spring Boot、Vue和MySQL等技术栈,实现企业办公用品的全流程线上化管理。核心功能包括:1)管理员对用品的增删改查及库存预警;2)员工在线申领与审核流程;3)公告信息发布模块。系统通过代码示例展示了库存管理、申领审核等关键业务逻辑,并配有功能截图。该方案有效解决了传统纸质登记的效率问题,为企业提供了规范化的办公用品管理解决方案。作者还提供了多个技术领域的实战项目资源链接。

计算机毕业设计江挽的博客 542

5分钟用Vue3插槽搭建可复用UI组件库

最近在做一个新项目时,发现很多UI组件其实可以复用,但每次都要从头写一遍太麻烦了。今天就和大家分享一下如何快速搭建一个包含按钮组、卡片、导航栏的基础UI组件库。如果你也在寻找快速构建UI组件库的方法,不妨试试Vue3插槽和InsCode平台的组合,真的能省去很多重复劳动!按钮是UI中最常用的组件之一。我们可以创建一个基础按钮组件,通过插槽来支持各种文本和图标组合。这个组件最大的特点就是可以通过插槽自由组合内容,同时保持统一的样式和行为。这样我们在使用时,就可以像搭积木一样自由组合卡片的各个部分,非常灵活。

CrystalwaveEagle34的博客 647
上一篇: 分享下工作中使用的git提交规范
下一篇: webpack优化项目总结
一号小白
博客等级 码龄9年 13粉丝 35原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值