自定义Element组件名称前缀

1,246 阅读2分钟

公司最近在搞开源代码扫描,前端使用Vue+Element作为主要的技术栈,Vue模板中代码成为了重灾区,尤其是在标签嵌套比较多的时候,尾部的标签很容易被判为重复,比如:

<div class="...">
	<el-row>
		<el-col>
			<p>
				<span>
					....
					<!-- 这部分代码很容易别判为重复 -->
				</span>
			</p>
		</el-col>
	</el-row>
</div>
<!-- 这部分代码很容易别判为重复 -->

起初的解决方法是在被扫到的代码中插入无实际意义,只是用来占位的自定义组件,如下:

<div class="...">
	<el-row>
		<el-col>
			<p>
				<span>
					....
				</span>
			</p>
			<!-- 使用自定义组件来分隔,组件没有实际作用,只是用来分隔开源重复代码 -->
			<my-custom-compoennt/>
		</el-col>
	</el-row>
</div>

但是这种方式确实挺恶心的,一是搞乱了代码结构。二是在新的代码中你不确认哪些代码是重复的,只有每次通过扫描后,才被动的去修改。

于是决定使用修改标签名的方法,给模板标签名前面加上个有意义的前缀,比如项目名缩写、公司名缩写等等。比如下面的形式:

<my-div class="...">
	<my-el-row>
		<my-el-col>
			<my-p>
				<my-span>
					....
				</my-span>
			</my-p>
		</my-el-col>
	</my-el-row>
</my-div>

divspan这基本标签我们很容易写一个自定义组件来代替。但是像el-buttonel-form这些element组件就不太容易替换掉了,于是自己就写了两个小小的Vue插件,分别为Element PlusElement UI进行组件重命名。 具体使用方法可以查看下面的连接

最后我们需要修改原来的代码,来重命名标签。 借助VsCode强大正则替换功能,一键将所有标签重命名,非常方便。具体方法如下

  1. 点击VsCode菜单, 如下图所示

e8ff00e23efc3fba4cbaa6497146348a.png

  1. 点击输入框右侧正则表达式按钮,输入(<\/?)el, 该表达式会匹配所有<el</el的文本,在下面输入框中输入你要改变的前缀,比如$1my-el-。然后点击全部替换按钮,这样代码中的<el-就替换成了<my-el-</el-替换成了</my-el-

3dd2f8c0ff2a55343cf31ecd18f06c23.png