4个Vue项目,本地共用同一套组件库

我是个人开发者,一个人在开发很多个产品。如下是我目前维护的VUE项目有4个,相比较公司高大上的架构设计和严谨的项目管理,个人开发追求的就是简单高效

本片文章讲下我是如何在4个Vue项目之间,本地化共用自定义组件。  自定义组件包括登录注册页面、支付页面(支付宝+stripe)、小的共用utils(按钮,logo)等等。    

websread,网页阅读器icon-default.png?t=N7T8https://websread.com

onetools,桌面端工具集icon-default.png?t=N7T8https://onetools.vip

we4221,我们的马拉松icon-default.png?t=N7T8https://we4221.com
复盘神器,dviewdiewicon-default.png?t=N7T8https://dviewdview.com

遇到的问题

1 效率低下:我不太可能每个项目都去copy需要的vue文件,随后项目变多,copy成本随之变大。

2 维护成本:遇到共用的组件需要维护更新逻辑,不太可能每个项目都去更新一遍文件。

参考网上一些资料,加上亲自实验成功。

我通过在项目同层级新建一个共用的项目,把共用的组件都塞入到这个项目里,来解决这个问题的。分享如下

解决方案

1 在同层级,新建共用组件项目plug_libs。我是通过vite来新建vue项目的。图中黄色标注是要设置的内容,下面会讲到。

2 plug_libs-src-index.ts文件中导出需要共用的组件,开放给其他项目使用

plug_libs-package.json文件,正常安装公共组件库需要的依赖即可。

3 在其他项目(例如websread.com)里,需要安装本地共享组件库。

cd ./websread.com
npm install ../plug_libs

这样,本地组件库就被安装到应用项目的packjson.json配置中了

4 此时,已经可以在其他项目 (例如websread.com)引用公共组件了

5 如果编辑器有引用的报错提示,我是在tsconfig.app.json配置文件里加了这句引用。

总结

关于vue项目引用公共组件,网上教程最多的是推荐发布到npm,再npm install安装;

但我个人觉得稍稍复杂,个人开发者精力有限。这种本地化引用的方式,更适合我的现状。

码字不易,欢迎评论区点赞交流。

-----------

后面准备把我是如何从产品转开发,到现在成为六边形战士的经验分享一下。感谢关注!

  • 5
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,要使用 Vue一套组件,需要遵循以下步骤: 1. 设计组件:根据项目需求,设计所需的组件样式和功能。 2. 编写组件代码:使用 Vue 组件的基本结构,编写组件的 HTML、CSS 和 JavaScript 代码。 3. 封装组件:将组件的 HTML、CSS 和 JavaScript 代码封装成一个独立的 Vue 组件。 4. 发布组件:将所有组件打包成一个组件,发布到 npm 或其他仓中,供其他开发者使用。 以下是一个简单的步骤示例: 1. 设计组件:假设我们需要设计一个按钮组件,需要考虑按钮的样式、尺寸、颜色等。 2. 编写组件代码:使用 Vue 组件的基本结构,编写组件的 HTML、CSS 和 JavaScript 代码。代码示例: ```html <template> <button :class="classes" @click="$emit('click')"><slot></slot></button> </template> <script> export default { props: { size: { type: String, default: 'normal' }, type: { type: String, default: 'default' } }, computed: { classes () { return [ 'btn', `btn-${this.type}`, `btn-${this.size}` ] } } } </script> <style scoped> .btn { padding: 10px 20px; border: none; border-radius: 5px; cursor: pointer; font-weight: bold; } .btn-default { background-color: #fff; color: #333; } .btn-primary { background-color: #007bff; color: #fff; } .btn-success { background-color: #28a745; color: #fff; } .btn-warning { background-color: #ffc107; color: #333; } .btn-danger { background-color: #dc3545; color: #fff; } .btn-normal { font-size: 16px; } .btn-small { font-size: 14px; } .btn-large { font-size: 18px; } </style> ``` 3. 封装组件:将组件的 HTML、CSS 和 JavaScript 代码封装成一个独立的 Vue 组件。代码示例: ```javascript import Button from './Button.vue' const components = [ Button ] const install = function (Vue) { components.forEach(component => { Vue.component(component.name, component) }) } export default { install, Button } ``` 4. 发布组件:将所有组件打包成一个组件,发布到 npm 或其他仓中,供其他开发者使用。 以上是一个简单的步骤示例,具体实现还需要根据实际需求进行调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值