Laya编辑器添加组件报错

@[TOC](关于 Laya 添加组件报错)

# 错误截图
在开心的一年里 我拿着我心爱的macbook pro 安装上了我心爱的laya引擎。当我想给我完美的新年小游戏添加组件的时候。 **新年的第一个BUG它如期而至!!!**
274561845b294b07bb443059662d8965.png


# 解决方式
- mac用户 使用Vscode或者其他代码编辑器 打开文件
/Applications/LayaAirIDE%202.app/Contents/Resources/app/out/vs/layaEditor/h5/layabuilder.max.js
- windodw用户 在laya安装文件夹 搜索找到 layabuilder.max.js 文件

- 搜索 _matchClassName 关键词 

> 定位到报错的地方 问题很明显 官方疏忽了正则匹配为空的情况

![在这里插入图片描述](https://img-blog.csdnimg.cn/94 ... rmark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5p6B5a6i5LiD,size_20,color_FFFFFF,t_70,g_se,x_16)
- 2行代码解决
![在这里插入图片描述](https://img-blog.csdnimg.cn/c4 ... rmark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5p6B5a6i5LiD,size_20,color_FFFFFF,t_70,g_se,x_16)



# 触发的原因
- 在mac中有一些Mac OS保存文件夹的自定义属性的隐藏文件 .DS_store,如文件的图标位置或背景色,相当于Windows的desktop.ini。这些文件是自动生成的 所以当你打开项目的时候自动生成在您的src代码目录
- 未知文件参入 Script正则匹配 出现null 情况,官方未想到null的情况 引起程序报错
![在这里插入图片描述](https://img-blog.csdnimg.cn/97 ... rmark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5p6B5a6i5LiD,size_20,color_FFFFFF,t_70,g_se,x_16)
//正则匹配为nll时 取数组下标1 直接导致程序崩溃
![在这里插入图片描述](https://img-blog.csdnimg.cn/dd ... f9.png)

- Laya是有提供忽略文件的选项的,but ! 它是隐藏的.  你可以通过命令来显示一些隐藏的文件 但是 .DS_store还是无法显示的 至少在您的laya编辑器里 您是无法直接添加它的

> 并非只有 .DS_store文件会导致问题的发生。  在src检查目录下 只要出现一些特殊的文件 包括 您自定义的一些shader脚本文件也会导致 正则匹配的问题。所以这个问题 是mac和window都存在的情况

- 所以最终的解决方案是 自己加上这段正则结果为null判断的代码 一劳永逸 不改忽略文件


![在这里插入图片描述](https://img-blog.csdnimg.cn/03 ... rmark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5p6B5a6i5LiD,size_20,color_FFFFFF,t_70,g_se,x_16)
已邀请:

Laya_Yan

赞同来自: 第七天堂

感谢您的反馈,您可以将版本升级到2.13.0beta。最新版中我们已经修复了这个问题

要回复问题请先

商务合作
商务合作