Cocos2D-JS -- 如何编译和运行一个“干净”的构建?

4 投票
4 回答
4377 浏览
提问于 2025-04-18 06:47

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

我可以在项目目录下通过控制台运行 cocos run -p webcocos run -p web --source-map。这些命令都能正常工作,让我可以运行和测试我的项目。


问题:
简单来说:我所做的代码更改没有被cocos2d-JSB编译器识别。最近修改过的旧代码仍然出现在新编译的cocos2d项目中。我无法检测到已经编译过的类文件的更改。


技术细节:
技术上来说:修改过的.js文件没有被cocos2d-js编译器正确复制(通过终端/控制台)。旧版本的.js文件在本地服务器中以某种方式被保留了。这个本地服务器是由运行cocos2d应用的Python脚本维护的。

(我大部分代码是用Typescript .ts写的,然后编译成Javascript .js,并生成一个 .js.map 文件。我在运行cocos编译器之前,确实是将Typescript编译成了Javascript)


更多信息:
我可以在Chrome浏览器的Javascript控制台中看到我的.ts文件,也能看到我的.js文件,并确认代码没有更新。


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

是否有可能 --source-maprun 命令强制进行全新构建?

我想要像在苹果的Xcode中那样进行“干净构建”,但针对cocos2d-js。我该怎么做?

如果这些都不行,我可以在哪里找到本地服务器使用的构建/运行目录,以便我可以手动更新.js文件?

4 个回答

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"
      ],
0

没错,其实很简单。你只需要按F12打开开发者工具,然后去设置里处理缓存的事。接着,当你运行游戏的时候,再次按F12打开开发者工具,然后刷新页面就可以了。

0

你要知道,Chrome浏览器在缓存方面非常固执。
你可以通过各种方法把缓存关掉,但它还是会保留一些你不想要的js文件。

我的建议是,每小时至少重启一次整个浏览器,而不仅仅是你正在调试的那个标签页。

7

解决方法: .js 文件被我的浏览器缓存了。

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


解决方案: 在 Chrome 中禁用缓存:
菜单(右上角的图标) -> 工具 -> 开发者工具 -> 设置(齿轮图标) -> 勾选“在开发者工具打开时禁用缓存”的选项

撰写回答