Cocos2D-JS -- 如何编译和运行一个“干净”的构建?
背景:
我正在制作一个Cocos2d-JS游戏。项目已经创建,现在处于开发阶段。
我可以在项目目录下通过控制台运行 cocos run -p web
或 cocos 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 compile
或 cocos run
命令覆盖旧的.js文件,而不是“智能地”保留旧文件?
是否有可能 --source-map
让 run
命令强制进行全新构建?
我想要像在苹果的Xcode中那样进行“干净构建”,但针对cocos2d-js。我该怎么做?
如果这些都不行,我可以在哪里找到本地服务器使用的构建/运行目录,以便我可以手动更新.js文件?
4 个回答
如果你不想再使用缓存,可以在你的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"
],
没错,其实很简单。你只需要按F12打开开发者工具,然后去设置里处理缓存的事。接着,当你运行游戏的时候,再次按F12打开开发者工具,然后刷新页面就可以了。
你要知道,Chrome浏览器在缓存方面非常固执。
你可以通过各种方法把缓存关掉,但它还是会保留一些你不想要的js文件。
我的建议是,每小时至少重启一次整个浏览器,而不仅仅是你正在调试的那个标签页。
解决方法: .js 文件被我的浏览器缓存了。
问题:
Chrome 浏览器在缓存 .js 文件。我通过关闭缓存解决了这个问题。我之前没有意识到 localhost 实际上是指向项目目录的。
解决方案: 在 Chrome 中禁用缓存:
菜单(右上角的图标) -> 工具 -> 开发者工具 -> 设置(齿轮图标) -> 勾选“在开发者工具打开时禁用缓存”的选项