[]生成微信小游戏时各种"undefined"(已解决)

生成微信小游戏时的坑(我的环境是TypeScript)
* 各种"undefined",比如matter undefined, Common,Events undefined等等
* 其实主要原因在于
 1. laya会根据index.html顺序把各种js写入code.js
 2. matter.js在生成code.js后他定义的var Matter并不是全局的,因此导致后面需要调用Matter的地方都会报错
 > 比如在LayaRender.js中 ,会调用到Matter,在导到微信后就会报错 ,我们看下生成的LayaRender的代码:


```
{
LayaRender = {};
Common = Matter.Common;
Composite = Matter.Composite;
...
```


* 类似我们自己在后续定义的`MatterEvents = Matter.Events;`都会因此报错
* 解决方案
* 首先第一步都是需要自己手动将JS文件粘到微信小游戏这边(matter.js)
* 比较粗暴的方式是手动修改code.js:  


```
var Matter = require("./matter.js");
(这只是其中一个例子,还有别的地方需要根据情况修改)
``


但这样的缺点是,每次发布完都需要手动修改code.js,比较烦躁
* 我的做法是建一个ts:  


```
var Matter;
var require;
if(typeof require != 'undefined') // 之所以加这个判断是保证在laya这边也正常运行不保错
{
Matter = require("./matter.js");
}
```


然后index.html中在所有之前导入(因为laya会根据index.html顺序把各种js写入code.js)```  


<body>
<script src="js/DoBeforeJs.js"></script>
<!--以下引用了常用类库,如果不使用,可以删除-->
 <!--核心包,封装了显示对象渲染,事件,时间管理,时间轴动画,缓动,消息交互,socket,本地存储,鼠标触摸,声音,加载,颜色滤镜,位图字体等-->
<script type="text/javascript" src="libs/laya.core.js"></script>

...
```


 
发布后就不会报错了.
done!
已邀请:

Laya_XSN

赞同来自:

好的,有问题在提交

要回复问题请先

商务合作
商务合作