私は新しいSenchaSDKTools v3 Beta(はい、私は知っています、ベータ版)と格闘していて、sencha-touchプロジェクトを最適化できるようにしていますが、うまくいきません。
私の目標は、プロジェクトの最適化を継続的インテグレーションビルドに組み込むことです。ビルド中に以下の最適化コードを実行します。
sencha app build -e testing
私はこれをMacOSXマシンで動作させており、Unixビルドサーバー(Jenkins経由)で動作させる過程にあります。しかし、私のアプリのバージョンであるsencha-touchv2.0.1とSenchaCmd v3.0.0.141の間にはバージョンの互換性がないため、失敗します。
私のアプリはかなり小さいので、Sencha Cmd v3.0.0.141を使用して、便利な手順に従ってv2.0.1アプリをアップグレードすると思いました。ドキュメントによると、私がする必要があるのはこれだけです:
cd [my sencha-touch app dir]
sencha upgrade /path/to/the/latest/sencha-touch/sdk
アップグレードプロセスは何かをしました。以下の出力を参照してください。ただし、依存関係が見つからないため、アプリが壊れています。
GET http://localhost:8080/product-selector/event/publisher/Dom.js?_dc=1348770723554 404 (Not Found) sencha-touch.js:7986
GET http://localhost:8080/product-selector/event/Dispatcher.js?_dc=1348770723544 404 (Not Found) sencha-touch.js:7986
Uncaught Error: [Ext.Loader] Failed loading './event/publisher/Dom.js', please verify that the file exists sencha-touch.js:8328
Uncaught Error: [Ext.Loader] Failed loading './event/Dispatcher.js', please verify that the file exists sencha-touch.js:8328
誰もがその答えを知っていますか?404のファイルであるDom.jsとDispatcher.jsは、アップグレードプロセス中に作成された「touch」ディレクトリにあります。ここで奇妙なのは、コードがその中を調べておらず、ルートを調べているだけだということです。app.jsonファイルをチェックして、「touch」ディレクトリを指すように修正する必要があるものがあるかどうかを確認しましたが、何も見つかりませんでした。アップグレードコマンドの出力は次のとおりです。
~/work/product-selector/web-app (feature/upgrade ✔) ᐅ sencha app upgrade ~/frameworks/sencha/sencha-touch
Sencha Cmd v3.0.0.141
[INFO ] init-properties:
[INFO ] init-antcontrib:
[INFO ] init-sencha-command:
[INFO ] init:
[INFO ] -before-app-upgrade:
[INFO ] app-upgrade-impl:
[INFO ] building application
[INFO ] [move] Moving 1342 files to /Volumes/Magnetic/Users/x/work/product-selector/web-app/./.sencha_backup/2.0.1.1/sdk
[INFO ] Renamed /Volumes/Magnetic/Users/x/work/product-selector/web-app/./sdk to /Volumes/Magnetic/Users/x/work/product-selector/web-app/./.sencha_backup/2.0.1.1 for backup
[INFO ] [copy] Copying 5 files to /Volumes/Magnetic/Users/x/work/product-selector/web-app/./.sencha_backup/2.0.1.1
[INFO ] Creating new application structure
[INFO ] init-properties:
[INFO ] init-antcontrib:
[INFO ] init-sencha-command:
[INFO ] init:
[INFO ] -before-generate-workspace:
[INFO ] generate-workspace-impl:
[INFO ] -before-copy-framework-to-workspace:
[INFO ] copy-framework-to-workspace-impl:
[INFO ] [copy] Copying 1150 files to /Volumes/Magnetic/Users/x/work/product-selector/web-app/touch
[INFO ] [copy] Copied 187 empty directories to 1 empty directory under /Volumes/Magnetic/Users/x/work/product-selector/web-app/touch
[INFO ] [copy] Copying 1 file to /Volumes/Magnetic/Users/x/work/product-selector/web-app/touch
[INFO ] [copy] Copying 1 file to /Volumes/Magnetic/Users/x/work/product-selector/web-app/touch
[INFO ] -after-copy-framework-to-workspace:
[INFO ] copy-framework-to-workspace:
[INFO ] -after-generate-workspace:
[INFO ] generate-workspace:
[INFO ] init-properties:
[INFO ] init-antcontrib:
[INFO ] init-sencha-command:
[INFO ] init:
[INFO ] -before-generate-app:
[INFO ] generate-app-impl:
[INFO ] Generating new packager.json file using native packager
[INFO ] copy-sdk:
[INFO ] -after-generate-app:
[INFO ] generate-app:
[INFO ] Updating references to framework files
[INFO ] -after-app-upgrade:
[INFO ] app-upgrade:
最後の注意:アップグレードプロセスはここでの私の主な目標ではありません。ビルドサーバーでのビルドの最適化のみを自動化したいことを忘れないでください。古いバージョンのSDKをUnixビルドサーバーにインストールしようとしましたが、Appleラップトップの同じバージョンと同じコマンドがありません。だから、私の2番目の質問は:
とにかく、sencha touch 2アプリでリソースの最適化を自動化できますか?これは、たとえばjenkins経由です。