Cocos2D-JS - 编译和运行“干净”版本的构建?

4

背景:
我正在创建一个Cocos2d-JS游戏。我已经创建了项目,并处于开发阶段。

我可以在控制台中从项目目录中运行 cocos run -p webcocos run -p web --source-map 命令。这些命令可以让我运行和测试我的项目。


问题:
简单来说:我所做的代码更改未被 cocos2d-JSB 编译器接受。我最近更改的旧代码仍然存在于新编译的 cocos2d 项目中。我无法检测到已经编译过的类文件的更改。


技术方面:
技术上的问题是:修改后的 .js 文件没有被 cocos2d-js 编译器(从终端/控制台)正确复制。以前版本的 .js 文件在本地主机 Web 服务器上以某种方式保留。本地主机由运行 cocos2d 应用程序的 Python 脚本维护。

(我使用 TypeScript .ts 编写大多数代码,并将其编译为 JavaScript .js 和 .js.map。在运行 cocos 编译器之前,我肯定会将 TypeScript 编译为 JavaScript)


更多:
当我在 Chrome 浏览器中使用 Javascript 控制台时,我可以看到我的 .ts 文件和 .js 文件都可以在本地主机上看到,并且可以确认代码未被更新。


问题:
如何"强制" cocos compilecocos run 命令覆盖旧的任何 .js 文件,而不是"智能"保留旧文件?

--source-map 是否会使 run 命令强制进行全新编译?

我想要像 Apple 的 Xcode 那样做一个 "Clean Build",但是用于 cocos2d-js。我该怎么做?

如果以上均不可行,则我可以在哪里找到本地主机使用的构建/运行目录,以便可以手动更新 .js 文件?

4个回答

7

解决方案: 禁用Chrome浏览器缓存:
菜单 (右上角图标) -> 工具 -> 开发者工具 -> 设置 (齿轮图标) -> 勾选禁用缓存 (当开发者工具打开时)

问题:
Chrome浏览器正在缓存.js文件。我通过关闭缓存来解决了这个问题。我没有意识到localhost实际上指向项目目录。


修复方法: 禁用Chrome浏览器缓存:
菜单 (右上角图标) -> 工具 -> 开发者工具 -> 设置 (齿轮图标) -> 勾选禁用缓存 (当开发者工具打开时)


0
你应该知道,Chrome对缓存非常执着。
无论你采用哪种方式关闭它,它仍会保留你不想要的js文件。
我的建议是每小时至少重启一次整个浏览器,而不仅仅是你正在调试的标签页。

0

是的,它就是这么简单,只需按F12打开开发工具,然后进入设置,进行缓存操作,当您运行游戏时,再次激活开发工具(F12)并刷新页面即可。


0

如果您不想再使用缓存,可以在您的 project.json 文件中将 noCache 设置为 true。

以下是示例代码。

    {
      "project_type": "javascript",
      "debugMode": 1,
      "showFPS": false,
      "frameRate": 60,
      "noCache": true,
      "id": "gameCanvas",
      "renderMode":1,
      "engineDir": "frameworks/cocos2d-html5",
      "modules": [
        "cocos2d",
        "cocostudio",
        "editbox"
      ],

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接