「day-ui」基于vue3.0从0-1搭建组件-环境搭建
ccwgpt 2024-10-25 10:53 29 浏览 0 评论
初衷
其实之前使用 vue2 的时候就想写个开源组件库,学习交流使用。如果公司有自己的需求也可以快速上手。开始想的是能在网上找到好的教程,环境搭建 - 组件编写 - 单元测试 - 文档编写 - 打包发布,但是没有很完善的,慕课网有个 react 组件库的教程,storybook 编写文档的,vue3 的有个组件库教程是写配置表单的。实在网上找不到资料了,没办法就自己写嘛,没有困难制造困难也要上。网上也是找了一些资料指导,再配合开源的 element-plus 和 element3 组件库,想把自己的学习经验和大家分享下,不一定全对,也会有一些问题,主要是和大家一起学习,大家有什么好的意见我也会融合进来,对自己也是提升。
day-ui
目前就简单写了两个组件,样式没有自己写,使用的 element-plus 的 scss 文件。内部逻辑都是参考一点点写的,更好的理解组建的实现和 vue3 的语法,因为我在公司英文名叫 day,就叫 day-ui 了。
npm:https://www.npmjs.com/package/day-ui
(不知道为什么会有下载量,我的名难道误导别人了?)
github地址:https://github.com/Bluestar123/day-ui
文档github地址:https://github.com/Bluestar123/day-ui-docs
文档在线访问:https://bluestar123.github.io/day-ui-docs/
如果您感兴趣的话,欢迎给个 star 关注哈,后面计划把每个组件的实现原理都写出来,知其所以然。
环境搭建
我们直接使用 vue-cli 搭建项目框架,因为要用到 vue3 ,得先把 vue-cli 的版本升级到 vue-cli@4.5 以上。
npm install -g @vue/cli
创建新项目
vue create xxx
为什么使用dart-scss(https://www.dart-china.org/t/topic/146)
按照提示可以启动项目,如果报依赖问题,可以删除 node_modules,重新安装
配置 prettier
在项目根目录创建 .prettierrc.json 文件
{
"singleQuote": true, // 使用单引号
"semi": false, // 不用分号
"trailingComma": "none" // 最后一个元素不加逗号
}
我们打开 vscode 的设置,配置保存格式化。如果想 vscode 所有项目都有这个功能,可以选用户,我这里选择工作区,当前项目,不影响其他项目结构格式化
根目录会创建一个 .vscode/setting.json 文件,
{
"editor.formatOnSave": true,
"editor.defaultFormatter": "esbenp.prettier-vscode" // 添加
}
如果发现有如下异常:
参考文章
环境搭建
- 我们不是做 vue 项目,可以把 src 目录删除,创建 examples 目录,用来测试写的组件;创建 packages 目录存放我们自己写的组件。
main.js 和 App.vue 代码和之前 src 目录下的一致
- 根目录新建 vue.config.js 修改配置
const path = require('path')
const join = path.join
function resolve(dir) {
return path.resolve(__dirname, dir)
}
module.exports = {
pages: {
index: {
entry: 'examples/main.js', // 运行入口
template: 'public/index.html',
filename: 'index.html'
}
},
configureWebpack: {
resolve: {
extensions: ['.js', '.vue', '.json'],
alias: {
packages: resolve('packages'),
assets: resolve('examples/assets'),
views: resolve('examples/views')
}
}
},
chainWebpack: (config) => {
config.module.rule('js').include.add('/packages').end()
}
}
npm run sreve 正常启动项目
- 引入全局样式文件 可以直接把 element-plus 的项目下载下来,样式文件放在 element-plus/packages/theme-chalk/src/ 目录下。在根目录创建 styles 目录,把样式文件拷贝进去。
因为我们组件库叫 day-ui,所以样式文件也是使用 d- 开头,修改 styles/mixins/config.scss
$namespace: 'd';
...
得到的目录结构如下:
- examples
- example // 组件使用demo
- button.vue
- App.vue
- main.js
- packages // 组件包源码
- button
- __tests__ 组件的单元测试
- button.spec.js
- src
- index.vue
- index.js // 单组件入口
- index.js // 入口
- styles // 组件样式
- typings // 组件的类型
文档初始化
开始想使用 vitepress 搭建文档,在 GitHub 找到了现成的脚手架工具 vitepress-for-component,地址(https://dewfall123.github.io/vitepress-for-component/), 大家也可以直接看官网快速上手
- 安装脚手架
yarn create vlib
- 安装依赖
npm i 或者 yarn
可能遇到以下问题
可能作者的开发平台不同,当然这个包对项目的启动,打包没有影响,所以我们可以忽略,在依赖中删除,在执行安装。
- 启动项目
- 使用 github 访问 在 github 上创建一个和文档项目名一致的仓库名,会有静态资源访问
把文档项目上传
仓库中找到 settings 菜单找到如下:
我们直接点击 choose a theme 选中随便一个主题,github 会自动创建 gh-pages 分支
配置网站
前面的换成你自己的名字,格式是 name.github.io/仓库名
点击网址成功打开
- 部署文档 打包npm run docs-build,生成的文件在 docs/dist 中
因为我们配置的访问 gh-pages 的 root 根目录,所以把 dist 下的文件传到 gh-pages 分支即可。
切换分支 git checkout gh-pages。把 dist 下的内容都放到根目录下,创建 .gitingore 文件不用的写上,上传
NICE!!!
- 提供了两个文件目录,也可以打包后直接放到 docs 里面,直接访问,不用移动文件,build 打包的时候改下地址
下一篇我们先写下简单的 button, icon 组件,快速的学习 vue3 的语法和打包配置,如果有问题的话欢迎指正!
如果文章对你有帮助,欢迎分享到朋友圈!谢谢阅读!
欢迎关注小编公众号:与前端沾边
相关推荐
- 一个基于.Net Core遵循Clean Architecture原则开源架构
-
今天给大家推荐一个遵循CleanArchitecture原则开源架构。项目简介这是基于Asp.netCore6开发的,遵循CleanArchitecture原则,可以高效、快速地构建基于Ra...
- AI写代码翻车无数次,我发现只要提前做好这3步,bug立减80%
-
写十万行全是bug之后终于找到方法了开发"提示词管理助手"新版本那会儿,我差点被bug整崩溃。刚开始两周,全靠AI改代码架构,结果十万行程序漏洞百出。本来以为AI说没问题就稳了,结果...
- OneCode低代码平台的事件驱动设计:架构解析与实践
-
引言:低代码平台的事件驱动范式在现代软件开发中,事件驱动架构(EDA)已成为构建灵活、松耦合系统的核心范式。OneCode低代码平台通过创新性的注解驱动设计,将事件驱动理念深度融入平台架构,实现了业务...
- 国内大厂AI插件评测:根据UI图生成Vue前端代码
-
在IDEA中安装大厂的AI插件,打开ruoyi增强项目:yudao-ui-admin-vue31.CodeBuddy插件登录腾讯的CodeBuddy后,大模型选择deepseek-v3,输入提示语:...
- AI+低代码技术揭秘(二):核心架构
-
本文档介绍了为VTJ低代码平台提供支持的基本架构组件,包括Engine编排层、Provider服务系统、数据模型和代码生成管道。有关UI组件库和widget系统的信息,请参阅UI...
- GitDiagram用AI把代码库变成可视化架构图
-
这是一个名为gitdiagram的开源工具,可将GitHub仓库实时转换为交互式架构图,帮助开发者快速理解代码结构。核心功能一键可视化:替换GitHubURL中的"hub...
- 30天自制操作系统:第六天:代码架构整理与中断处理
-
1.拆开bootpack.c文件。根据设计模式将对应的功能封装成独立的文件。2.初始化pic:pic(可编程中断控制器):在设计上,cpu单独只能处理一个中断。而pic是将8个中断信号集合成一个中断...
- AI写代码越帮越忙?2025年研究揭露惊人真相
-
近年来,AI工具如雨后春笋般涌现,许多人开始幻想程序员的未来就是“对着AI说几句话”,就能轻松写出完美的代码。然而,2025年的一项最新研究却颠覆了这一期待,揭示了一个令人意外的结果。研究邀请了16位...
- 一键理解开源项目:两个自动生成GitHub代码架构图与说明书工具
-
一、GitDiagram可以一键生成github代码仓库的架构图如果想要可视化github开源项目:https://github.com/luler/reflex_ai_fast,也可以直接把域名替换...
- 5分钟掌握 c# 网络通讯架构及代码示例
-
以下是C#网络通讯架构的核心要点及代码示例,按协议类型分类整理:一、TCP协议(可靠连接)1.同步通信//服务器端usingSystem.Net.Sockets;usingTcpListene...
- 从复杂到优雅:用建造者和责任链重塑代码架构
-
引用设计模式是软件开发中的重要工具,它为解决常见问题提供了标准化的解决方案,提高了代码的可维护性和可扩展性,提升了开发效率,促进了团队协作,提高了软件质量,并帮助开发者更好地适应需求变化。通过学习和应...
- 低代码开发当道,我还需要学习LangChain这些框架吗?| IT杂谈
-
专注LLM深度应用,关注我不迷路前两天有位兄弟问了个问题:当然我很能理解这位朋友的担忧:期望效率最大化,时间用在刀刃上,“不要重新发明轮子”嘛。铺天盖地的AI信息轰炸与概念炒作,很容易让人浮躁与迷茫。...
- 框架设计并不是简单粗暴地写代码,而是要先弄清逻辑
-
3.框架设计3.框架设计本节我们要开发一个UI框架,底层以白鹭引擎为例。框架设计的第一步并不是直接撸代码,而是先想清楚设计思想,抽象。一个一个的UI窗口是独立的吗?不是的,...
- 大佬用 Avalonia 框架开发的 C# 代码 IDE
-
AvalonStudioAvalonStudio是一个开源的跨平台的开发编辑器(IDE),AvalonStudio的目标是成为一个功能齐全,并且可以让开发者快速使用的IDE,提高开发的生产力。A...
- 轻量级框架Lagent 仅需20行代码即可构建自己的智能代理
-
站长之家(ChinaZ.com)8月30日消息:Lagent是一个专注于基于LLM模型的代理开发的轻量级框架。它的设计旨在简化和提高这种模型下代理的开发效率。LLM模型是一种强大的工具,可以...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- 框架图 (58)
- flask框架 (53)
- quartz框架 (51)
- abp框架 (47)
- springmvc框架 (49)
- 分布式事务框架 (65)
- scrapy框架 (56)
- shiro框架 (61)
- 定时任务框架 (56)
- java日志框架 (61)
- mfc框架 (52)
- abb框架断路器 (48)
- beego框架 (52)
- java框架spring (58)
- grpc框架 (65)
- tornado框架 (48)
- 前端框架bootstrap (54)
- orm框架有哪些 (51)
- 知识框架图 (52)
- ppt框架 (55)
- 框架图模板 (59)
- 内联框架 (52)
- cad怎么画框架 (58)
- ssm框架实现登录注册 (49)
- oracle字符串长度 (48)