elementUI源码修改的爬坑之旅

news/2024/6/28 18:43:42

今天由于项目需要,想在Tree组件的前面增加一个icon图标,根据不同类型增加不同的图标,我修改了elementUI的源代码,发布到npm上去成功使用,记录下过程中所碰到的问题,
首先看下最后的效果:

clipboard.png
下面简单记录下过程和过程中所遇到的问题以及问题的解决方案。

  1. 首先把elementUI的项目从git上克隆下来:
git clone https://github.com/ElemeFE/element.git

克隆完成后就会看到有个名叫element的文件夹出现:

clipboard.png
然后进入element文件夹:

cd element

安装相关的依赖:

npm install

第一步已经完成。

  1. 修改源码,我修改的部分在packages里面,

clipboard.png
我修改完成后执行:

npm run dist

就会生成一个lib文件夹,这部分是我们调试用的,刚克隆下来没有run dist之前是没有lib文件夹的,我修改完源码之后,运行run dist 后将生产的lib文件夹拷贝到项目中的node_modules中的element-ui文件夹中去,效果OK。
3.上传npm 包。
第一次是在网上看大佬说只需要修改里面的config.js文件里面的名字和package.json里面的包名就可以了,我修改了之后上传后结果是报了40多个路径错误,找不到这个找不到那个,看的我是一脸懵。
然后我的解决方案是全局全词匹配到element-ui之后进行全局替换为我设置的包名。
说下上传包步骤,
首先进入element文件夹之后执行:

npm init 

然后登陆下(没有账户的注册账户):

npm login

依次根据提示输入username、password、e-mail其他的都可以敲回车完事(记得改element文件夹中package.json文件中的包名和版本号啊)。
需要强调的是包名不能重复,不然npm会给你报一堆乱七八糟的错误。
最后进行上传:

npm publish

ok上传完成(要是报各种看不懂的错误很大可能是包名重复)。
4.到项目中将项目中的package.json中的dependencies中的:"element-ui": "^2.4.11"修改为:"你的包名": "^你的版本号"
然后进行依赖安装:npm install
启动项目,效果OK。
有不对的地方,各位路过的大佬多多指教。


http://lihuaxi.xjx100.cn/news/235635.html

相关文章

Swift 代码调试-善用XCode工具(UI调试,五种断点,预览UIImage...)

原创Blog,转载请注明出处 http://blog.csdn.net/hello_hwc?viewmodelist 我的stackoverflow 工欲善其事,必先利其器,强烈建议新手同学好好研究下XCode这个工具。比如Build Settings,Build Info Rules,Build Parse…

Linux上传和下载

下载:sz 上传:rz

iOSSharing #9 | 2019-05-19

目录 1. setNeedsLayout、layoutIfNeeded与layoutSubviews区别? 2. UIView与CALayer的区别? 3. loadView什么时候被调用?它有什么作用?默认实现是怎么样的? 4. UIViewController的完整生命周期? 5. UIView动…

Swift学习 OOP三大特性:继承、多态、封装

先看个例子 从上面的例子可以总结那么一句话:”学生是人”。也就是Student类继承People类。简而言之,学生是人,这句话是说得通的,但是”人是学生”这句话是说不通的,不是学生就不是人了嘛? 从代码中,我们可以看出S…

整理的一点MD5资料(第一部分)

MD5加密算法研究MD5简介: MD5的全称是Message-Digest Algorithm 5,在90年代初由MIT的计算机科学实验室和RSA Data Security Inc发明,经MD2、MD3和MD4发展而来。 Message-Digest泛指字节串(Message)的Hash变换,就是把一个任意长度的…

1001 害死人不偿命的(3n+1)猜想 (15 分)

题目链接 题目很简单验证给定的数需要经过几步才能到达1。 假设这个数n如果n是偶数&#xff0c;n n/2;如果n是奇数&#xff0c;n(3*n1)/2c代码 #include <iostream> using namespace std; int main() {int count 0;int n;cin >> n;while (n ! 1) {//是偶数if (n …

iOS学习笔记--01swift实现提示框第三方库:MBProgressHUD

本文使用swift语言使用MBProgressHUD。 开源项目MBProgressHUD可以实现多种形式的提示框。使用简单&#xff0c;方便。GitHud的下载地址是&#xff1a;https://github.com/jdg/MBProgressHUD/ 下载完成后&#xff0c;将MBProgressHUD.h和MBProgressHUD.m拖入已经新建好的Swift项…

Netty - ByteBuf索引管理

2019独角兽企业重金招聘Python工程师标准>>> 之前写过一篇文章介绍过JDK里面InputStream的mark(readlimit)和reset()方法&#xff0c;Java IO&#xff1a;使用mark/reset实现替换文件中字符串。相应的&#xff0c;可以通过调用markReaderIndex()/markWriterIndex()/…