手写Element-UI组件库的搭建

简介: 手写Element-UI组件库的搭建

如果想自己写一个组件库该怎么写呢,如何初始化项目,通过对element-UI组件库的分析,用package进行项目管理,项目组件在components里,play是运行文件入口。接下来一起来搭建环境和项目初始化

参考GitHub上源码地址:github.com/element-plu…

环境搭建

全局安装yarn,并查看是否安装成功

npm install -g yarn
yarn -v
复制代码

网络异常,图片无法展示
|

安装lerna多包管理工具,方便我们在一个项目中管理多个 npm 包,然后初始化

yarn global add lerna  或者  npm i lerna -g
lerna init
复制代码

找一个空文件夹执行 lerna init初始化项目后得到:

网络异常,图片无法展示
|

在lerna.json文件中添加如图代码,表示用yarn管理

网络异常,图片无法展示
|

创建组件

初始化:

yarn install
复制代码

目录结构:

网络异常,图片无法展示
|

创建button组件库

lerna create button
复制代码

这里面会有一个提示就是输入这个组件的名称,然后一直回车,最后输入yes,就可以自动在packages下创建文件button

网络异常,图片无法展示
|

在button文件里面有lib,可以自己手动改为src,将来的代码也就是在src里面写,由于我们用的是vue框架写,但是在src文件下自动生成的是button.js,我们只需要改为button.vue即可。

下创建文件index.tsindex.ts与button文件为同级目录,这个是每个组件的入口文件

解析安装ts,并且初始化

npm install typescript -D
npx ts c --init
复制代码

初始化后会生成一个tsconfig.json文件,文件配置

{
"compilerOptions": {
    "target": "ESNext",
    "module": "ESNext",
    "esModuleInterop": true,
    "skipLibCheck": true,
    "forceConsistentCasingInFileNames": true,
    "moduleResolution": "node",
    "jsx": "preserve",
    "declaration": true,
    "sourceMap": true
  }
}



目录
相关文章
|
存储 JSON 资源调度
10分钟带你从0到1搭建monorepo 工程化项目(一)
前言 大家好,我是Fly哥, 之前写博客的仓库,还是用的原生的html 和js 也没有引入 ts , 和一些工程化的东西, 所以自己重新搭建了一套前端项目架构 基于 lerna + yarn 的 monrepo的仓库, 主要是后面会学习输出的一些东西, 整个架子先搭建起来。 2d 和 3d 公共 util 的封装 个人 npm 包的发布 (rollup) 2d react 项目 搭建(vite) 3d react 项目 搭建 (webpack) 搭建一套基于webpack 5 的cli 每个项目都有一些特定的依赖, 但是也会有一些相同的依赖。比如eslint、 babel 的一些基础配置,
10分钟带你从0到1搭建monorepo 工程化项目(一)
|
存储 SQL Java
Springboot Mybatis 、JPA 调用存储过程,实战教程
Springboot Mybatis 、JPA 调用存储过程,实战教程
1581 0
Springboot Mybatis 、JPA 调用存储过程,实战教程
|
Java 测试技术 开发者
初学者入门:掌握单元测试的基础与实践
【10月更文挑战第14天】单元测试是一种软件测试方法,它验证软件中的最小可测试单元——通常是单独的函数或类——是否按预期工作。单元测试的目标是确保每个模块在其自身范围内正确无误地运行。这些测试应该独立于其他模块,并且应该能够反复执行而不受外部环境的影响。
308 2
|
存储
软件设计师软考题目解析17 --每日五题
这篇文章提供了软件设计师软考的每日五题解析,包括页面变换、段页式存储管理、可变式分区分配、虚拟页式存储管理和I/O接口编址等计算机系统相关题目。
365 0
|
8月前
|
Web App开发 人工智能 安全
指南:Google Gemini 2.0 Pro国内版 (Gemini 2.0国内使用指南)
据称,谷歌 AI 推出的 Gemini Pro 国内版,是一款性能卓越的大型语言模型,其能力和表现均超越了广受欢迎的 ChatGPT。作为 Fostmar 的重大升级,它将为用户带来前所未有的 AI 交互体验
2040 0
|
数据采集 数据挖掘 Python
Python中collections模块的Counter计数器:深入解析与应用
在Python的`collections`模块中,`Counter`是一个强大且实用的工具,它主要用于计数可哈希对象。无论是统计单词出现的频率,还是分析数据集中元素的分布情况,`Counter`都能提供快速且直观的结果。本文将深入解析`Counter`计数器的原理、用法以及它在实际应用中的价值。
|
资源调度 JavaScript API
Vue3+TS+Vite开发组件库并发布到npm
这篇文章介绍了如何使用Vue 3、TypeScript和Vite开发一个包含35个常用UI组件和8个API功能函数的组件库`vue-amazing-ui`,并将其发布到npm,同时提供了组件库的安装使用说明和在线预览。
353 2
Vue3+TS+Vite开发组件库并发布到npm
Parsing error: The keyword ‘const‘ is reserved
Parsing error: The keyword ‘const‘ is reserved
|
12月前
|
前端开发 JavaScript API
前端的全栈之路Meteor篇(完):关于前后端分离及与各框架的对比,浅析分离之下的潜在耦合
本文探讨了Meteor.js这一全栈JavaScript框架的特点与优势,特别是在前后端分离架构中的应用。Meteor通过共享数据结构和简化全栈开发流程,实现了前后端的紧密协作。文章还对比了其他全栈框架,如Next.js、Nuxt.js等,分析了各自的优势与适用场景,最后讨论了通过定义文档归属者和用户专有数据集简化后端构建及端云数据同步的方法。
827 0
|
JavaScript 前端开发 数据安全/隐私保护
UI 框架:Element-plus组件库(一)
在现代Web开发中,用户界面的设计与交互体验至关重要。随着前端技术的迅速发展,各种UI框架层出不穷,旨在提升开发效率和用户体验。其中,Element Plus作为一款基于Vue 3的组件库,因其简洁优雅的设计和丰富的功能而备受欢迎。 Element Plus不仅提供了众多高质量的组件,还注重与开发者的友好互动,使得即使是初学者也能快速上手。在本系列文章中,我们将深入探讨Element Plus的各个组件及其应用,通过实例演示如何有效利用该框架构建美观且功能强大的用户界面。
1469 0