Cocos2D-JS скомпилировать и запустить «чистую» сборку?

Контекст:
Я создаю игру Cocos2d-JS. Я уже создал проект и нахожусь в стадии разработки.

Я могу запустить cocos run -p web или cocos run -p web --source-map из каталога проекта в консоли. Эти команды работают и позволяют мне запускать и тестировать мой проект.


Проблема:
Проще говоря: изменения кода, которые я делаю, не воспринимаются компилятором cocos2d-JSB. Старый код, который я недавно изменил, все еще существует в недавно скомпилированных проектах cocos2d. Я не могу обнаружить изменения, которые я внес в файлы классов, которые уже были скомпилированы.


Технические:
Техническая проблема: измененные файлы .js неправильно копируются компилятором cocos2d-js (из терминала/консоли). Предыдущая версия файла .js каким-то образом сохраняется на локальном веб-сервере. Локальный хост поддерживается скриптом Python, который запускает приложение cocos2d.

(Большую часть кода я пишу с помощью Typescript .ts и компилирую в Javascript .js с помощью .js.map. Я определенно компилирую Typescript в Javascript перед запуском компилятора cocos)


Подробнее:
Я вижу, что мои файлы .ts видны с локального хоста при использовании консоли Javascript в браузере Chrome. Таким образом я также вижу свои файлы .js и могу подтвердить, что код не обновлялся.


Вопрос.
Как я могу "принудительно" использовать команды cocos compile или cocos run для перезаписи любых старых файлов .js вместо "интеллектуального" сохранения старых файлов?

Возможно ли, что --source-map заставляет команду run принудительно выполнить новую сборку?

Я хочу сделать «Чистую сборку», как в Apple Xcode, но для cocos2d-js. Как я могу это сделать?

Если это невозможно, где я могу найти каталог сборки/запуска, используемый локальным хостом, чтобы я мог вручную обновить файлы .js самостоятельно?


person JThora    schedule 16.05.2014    source источник


Ответы (4)


Исправить: файлы .js кэшировались моим браузером.

Проблема.
Браузер Chrome кэшировал файлы .js. Я решил эту проблему, отключив кеширование. Я не понимал, что локальный хост действительно указывал на каталог проекта.


Решение. Отключить кэширование в Chrome:
Меню (верхний правый значок) -> Инструменты -> Инструменты разработчика -> Настройки (значок шестеренки) -> Флажок для отключения кэширования (когда DevTools открыт)

person JThora    schedule 16.05.2014

Вы должны знать, что Chrome настойчиво относится к кэшированию.
Вы можете отключить его любым способом, который они предлагают, и он по-прежнему будет сохранять js-файлы, которые вам не нужны.

Мой совет — перезапускать весь браузер, а не только ту вкладку, которую вы отлаживаете, не реже одного раза в час.

person Matt Hilliard    schedule 14.10.2015

Да, это было так просто, просто откройте инструменты разработчика с помощью F12, затем перейдите в настройки, выполните кэширование, и когда вы запустите игру, снова активируйте инструменты разработчика (F12) и обновите страницу.

person Pikipoka    schedule 19.12.2015

Вы можете установить для noCache значение true в файле project.json, если вы больше не хотите кешировать.

Вот пример кода.

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