pslaboが試したことの記録

はてなダイヤリーからはてなブログに引っ越してきました

この日記は現在実行中の減量記録を含む個人的なメモとして始めましたが、最近はコンピュータやガジェット、ハック、セキュリティネタのほうがメインになっております。

はてなダイヤリー時代はカテゴリ分けが適当だったのですが、これはそのうち直します。


Sencha ArchitectでExt JS最新版向けに作成したプロジェクトをExt JS旧バージョンと組み合わせる

Sencha Architect で Ext JS 7.1 を選んで作り始めたプロトタイプを Ext JS 6.x 向けに変更する必要が出てきたので、とりあえずなんとかしてみた内容をログとして残します。

この手順はあくまで気休め程度に自己責任で試すやりかたです。過去バージョンでサポートされていない機能を含むプロジェクトは正しく動くわけがないので、動いたらラッキーくらいの立ち位置で。

サマリ

  • Sencha Architectのプロジェクトファイル(拡張子 xds)はプロジェクトで使用するツールキット(Modern, Classic)のバージョン情報を含む。

  • プロジェクトのアーカイブ(拡張子 xda)を作成する場合はアーカイブSDKを含めるかどうかを設定できる。そしてSDKを含まないアーカイブは、Sencha Architectで開いて保存するとき、必要なSDKがプロジェクト保存フォルダに保存される。

  • つまり、この仕組みを意図的に利用すれば、プロジェクトが使用するSDKのバージョンを変えることができる。

  • ただしこの仕組みは、プロジェクト自体にExt JS SDKが含まれない状態のプロジェクトファイルを開くときに

  • Sencha Architectのプロジェクトアーカイブのファイルフォーマットはzipなので、単にzipアーカイブツールで展開すれば内包されているxdsファイルを編集できる

手順

Sencha Architectでプロジェクトを Archive として保存する

  • FireメニューからArchive Projectを選ぶとxdaファイルを生成できる。
  • 保存時にSDKを含むアーカイブにするかどうかを聞いてくるので、SDKを含まないアーカイブで生成する

xda ファイルをzipとして展開する

  • ファイル名の拡張子を単純に zip にすれば、OS標準の機能でzipファイルを展開できる

展開後のフォルダに含まれるxdsファイルをエディタで編集する

xdaファイルに下記のような箇所があるはずなので、該当箇所2か所を探して修正する。

{

    "settings": {
        "cmd": {
            // "cmd" の設定は全部消す
            "cmdVersion": "7.1.0.16",
            "license": "commercial",
            "frameworkVersion": "7.1.0.48"},
        ...
    },
    ...
    // このフレームワーク指定の部分を ext67 などに書き換える。Classic Toolkitはext71、Modern Toolkitはmodern71のように表記する。
    "framework": "ext71",
    ...
}

書き換えた xda ファイルを Sencha Architect で開くと、指定した旧バージョンを使用するプロジェクトとして開くようになる

  • Ext Premium Addons を使用していないプロジェクトの場合は単にセーブすればプロジェクトディレクトリに指定したバージョンの Ext JS SDK が展開される
  • Ext Premium Addons を使用している場合はプロジェクトに追加することでプレビューが正しくするようになる。