4

コンテキスト:
Cocos2d-JS ゲームを作成しています。私はすでにプロジェクトを作成しており、開発段階にあります。

cocos run -p webまたはcocos run -p web --source-map、コンソールのプロジェクト ディレクトリから実行できます。これらのコマンドは機能し、プロジェクトを実行してテストすることができます。


問題:
簡単に言えば、コードの変更が cocos2d-JSB コンパイラーに反映されません。最近変更した古いコードは、新しくコンパイルされた cocos2d プロジェクトにまだ存在しています。コンパイル済みのクラス ファイルに加えた変更を検出できません。


技術:
技術的な問題: 変更された .js ファイルが cocos2d-js コンパイラによって (ターミナル/コンソールから) 正しくコピーされません。.js ファイルの以前のバージョンは、何らかの方法で localhost-web-server に保持されます。localhost は、cocos2d アプリを実行する Python スクリプトによって維持されます。

(私は Typescript を使用してほとんどのコードを記述し、 . を使用.tsして Javascriptにコンパイルします。cocos コンパイラを実行する前に Typescript を Javascript にコンパイルします).js.js.map


詳細:
Chrome ブラウザーで Javascript コンソールを使用すると、ローカルホストから .ts ファイルが表示されることがわかります。この方法で .js ファイルを確認することもでき、コードが更新されていないことを確認できます。


質問:古いファイルを「インテリジェントに」保持するのではなく、またはコマンドで古い .js ファイルを上書きするように「強制」
する にはどうすればよいですか?cocos compilecocos run

コマンドが新しいビルドを強制する--source-map可能性はありますか?run

Apple の Xcode のように「クリーン ビルド」を作成したいのですが、cocos2d-js 用です。これどうやってするの?

それが不可能な場合、.js ファイルを自分で手動で更新できるように、localhost が使用するビルド/実行ディレクトリをどこで見つけることができますか?

4

4 に答える 4

7

修正: .js ファイルがブラウザによってキャッシュされていました。

問題:
Chrome ブラウザが .js ファイルをキャッシュしていました。キャッシュをオフにすることでこの問題を解決しました。ローカルホストが実際にプロジェクト ディレクトリを指していることに気づきませんでした。


解決策: Chrome でキャッシュを無効にする:
メニュー (右上のアイコン) -> ツール -> 開発者ツール -> 設定 (歯車のアイコン) -> [キャッシュを無効にする] チェックボックスをオンにします (DevTools が開いている場合)。

于 2014-05-16T19:30:32.000 に答える
0

はい、これと同じくらい簡単でした.F12で開発ツールを開き、設定に移動してキャッシュを実行し、ゲームを実行するときに開発ツールを再度アクティブにして(F12)、ページを更新します

于 2015-12-19T12:47:35.510 に答える
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"
      ],
于 2017-02-02T06:10:27.343 に答える
0

ご存じのとおり、Chrome はキャッシュに固執します。
彼らが提供するすべての方法でオフにすることができ、不要なjsファイルは引き続き保持されます.

私のアドバイスは、デバッグしているタブだけでなく、ブラウザ全体を少なくとも 1 時間に 1 回再起動することです。

于 2015-10-14T16:27:36.203 に答える