吐槽: 大家都遇到过正常的代码在你电脑网页预览报错, 同事电脑正常的问题

相信大家都遇到过这种网页预览代码报错情况:

1.早上打开着creator项目同时,从git上拉取下几十上百个增/删/重名/改动的ts文件,然后再回到creator触发自动编译预览脚本
2.回到localhost:7456网页刷新发现报错出现类似下面错误,但同样代码在同事电脑预览是正常的

error: load script [./xxxx/xxxx] failed : Error: Cannot find module './xxxxx'

3.你心想又是cocos老毛病,自动编译预览脚本吃错药了,重启creator就可以恢复正常

通常情况下大家遇到这老问题重启creator就能解决,但可惜不是每次重启都能碰巧解决问题

4.重启后,报错依旧顽固地存在,你开始怀疑creator的编译文件缓存是不是出了问题。你像侦探一样,在项目目录下搜寻着线索,最终锁定了 temp/quick-scripts 文件缓存目录,关闭creator后毫不犹豫地将其删除,再次重启creator

重启后你终于看到网页调试页面不报红了,但可惜不是每次清缓存都能恢复正常

5.看到依旧报红网页你瞬间红温,于是下定决心仔细看看网页加载预览启动过程
6.于是打开网页调试面板看加载过程的源码, 发现项目代码全部在__quick_compile__.js 加载进内存的, 同时发现报错文件在这列表里找不到

    var scripts = [{
        "deps": {
            "./assets/src/GameLogin": 27,
            "./assets/src/Main": 93,
            "./assets/src/GameController": 94,
            .....

7.你心想问题肯定是编译出错没把新增文件加入scripts列表, 要么是内存的中__quick_compile__.js 文件是旧的

8.接着你找到项目目录下 temp/quick-scripts/dst/quick_compile.js 文件打开, 发现新增文件在scripts列表里, 你心想到: “难道是creator缓存了__quick_compile__.js文件在内存里?”

9.很快你排查这种猜想, 因为刚刚已经重启creator, 于是你觉得creator读的不是这份__quick_compile__文件缓存, 接着花了大半天找遍 Creator/2.4.11/resources、Users/用户名/.CocosCreator目录, 可惜找到的__quick_compile__文件与项目无关

10.接着你卸载creator再重装,完成后打开网页依旧是满屏红光,这瞬间你眼睛布满了血丝

11.此时,时间已经悄然来到了半夜。你开始怀疑creator是不是用进程共享缓存方式把__quick_compile__文件缓存到另一个进程的内存中。你像疯子一样打开任务管理器,把所有带有cocos相关的进程都强制关闭。然而,当你再次打开网页时,那满屏的红光依旧在无情地嘲笑你

12.看着满屏红字你终于忍无可忍,一脚把电脑主机踢飞几米远,等你冷静下来把电源线重新插上主机,开机打开项目后你神奇的发现调试面板不再爆红了,此时你爆出了国粹:哔~~艹

到这一步大部分人的问题都已经解决,什么? 还有人继续报错…

13.@官方

上面问题除了用关机重启解决,还可以先开一个空项目把 http://localhost:7456/ 的7456端口占用, 再打开报错的项目从 http://localhost:7457/ 进去调试不报错了, 怀疑是creator 本地http缓存服务一直常驻进程?或者浏览器本身缓存了__quick_compile__文件?

1赞

经典圈完官方没人理 因为我们用的是2.x :sweat_smile:

关掉 cocos creator 后删除 library、local、temp 后再打开也不行吗,,

最近好像很容易报错。

大部分时候有用, 但总有无效的时候

碰到问题我也是删除这些文件,但是meta文件就变了,2.x

没碰到过 meta 文件变了的,,

知道原因了。对比了meta文件改动,校正了width,heigh :joy:

这个确实会,是替换大小不一样的图片后编辑器没更新 meta 文件,,

3.x一样存在问题

你出现这个问题的时候,编辑器进去显示的端口是 7456 还是7457

7456, 没有开两个项目

增删重名ts文件越多,越容易出现这问题

帮我也看一下问题咯