Sencha Cmdの導入にあたって

Sencha Cmdは、クロスプラットフォームのコマンドラインツールです。さまざまな自動タスクを、新規のプロジェクトの立ち上げから製品製造までのアプリケーションの全ライフサイクルに対応して提供します。

Sencha Cmd の紹介

Sencha Cmd には、Sencha Ext JS および Sencha Touch の各フレームワークと連動して時間を節約する強力な機能一式が備わっています。Sencha Cmdに備わっている機能は次のとおりです。

  • コード生成ツール:アプリケーション全体を作成し、そのアプリケーションを新たなMVCコンポーネントと共に継承するコード生成ツール。
  • JSコンパイラ:Sencha フレームワークの意味を理解し、ソースから最小のフットプリントのビルドを作成できるフレームワーク認識の JavaScript コンパイラ。コンパイラは Sencha フレームワークの上位の意味論の多くを最適化し、アプリケーションのロード時間を短縮できます。
  • Webサーバー:ローカルホストからのファイルに対応する軽量のWebサーバーを提供します。
  • ネイティブでのパッケージ化:デバイス機能にアクセスし、App Store内で公開できる高度な利用のモバイルアプリケーションにSencha Touchを変換できるネイティブパッケージング。
  • パッケージ管理システム:他者によって、またはSencha Package Repositoryから作成されるパッケージの簡単な統合(Ext JS Themesなど)用の公開されているパッケージ管理システム。
  • スクリプトのビルド:“before”と“after”の拡張ポイントを持つアプリケーションとパッケージ用に生成されるビルドスクリプトです。これによって、ビルド処理をカスタマイズして特定のニーズに合わせられるようになります。
  • チューニングツールアプリケーションの最終ビルド内に含まれているものをチューニングする強力なコード選択ツールです。ページ間の共通コードとパーティションを共有するコードを決定します。これらにはすべて上位の集合操作が使われており、必要に応じてビルドが確実に取得されます。
  • ワークスペース管理:複数のアプリケーション間でフレームワーク、パッケージ、カスタムコードを共有できます。
  • 画像キャプチャ:CSS3機能(border-radiusやlinear-gradientなど)をレガシーブラウザのスプライトに変換します。
  • 柔軟な設定システム:アプリケーションやワークスペースのレベルで、またはマシン上の全ワークスペース間で、共通のオプションに指定されるデフォルトを有効化します。
  • ログ記録:コマンドの内部動作の理解やトラブルシューティングの改善に役立つ良質なログ記録です。
  • サードパーティ製ソフトウェア:Sencha Cmdには、Compass、Sass、Apache Antの互換バージョンが含まれています。
  • コード生成のフック:ワークスペースの1つのページで固有化することも、全ページで共有することもできます(たとえば、新しいモデルの生成時にコーディングの規則やガイドラインをチェックするために)。

互換性

Sencha Cmdは、バージョン4.1.1a以上のExt JSおよびバージョン2.1以上のSencha Touchをサポートしています。Sencha Cmdの多くの機能で、上記またはそれ以降のバージョンでのみ利用できるフレームワークサポートが必要になります。一部の低レベルコマンドは、通常、旧バージョンのSenchaフレームワークまたはJavaScript用に使用できます。

旧バージョンのExt JSをご利用の場合は、Sencha Cmdのbuildコマンドを使用してJSBファイルを介したビルドを行えます。これは、Sencha CmdがJSBuilderに置き換わり、JSBファイル内で記述される各ファイルの圧縮されたビルドを作成できるようになることを意味します。仕様廃止予定のSDKツールv2と同じく、Sencha CmdはJSBファイルを更新しません。

Sencha Touch 2.0およびSencha Ext JS 4.0では、仕様廃止予定のSDKツールv2が必要になりますが、それ以降のバージョンのTouchやExt JSでは使用できません。

システムセットアップ

次のソフトウェアをダウンロードしてください。

  • JRE Sencha Cmd ですべての機能をサポートするためには Java Runtime Environment バージョン 1.7 が必要になります。ただし、ほとんどの機能は 1.6(最低サポートバージョン)でも動作します。
  • Sencha Cmd
  • Ruby Ruby は OS によって異なります。
  • Windows:rubyinstaller.org から Ruby をダウンロードします。ソフトウェアの ".exe" ファイルバージョンを取得し、インストールします。
  • Mac OS:Rubyがプレインストールされています。**Ruby -v** コマンドで、Ruby がインストールされているかテストできます。
  • Ubuntu:**sudo apt-get install ruby2.0.0** を使用して Ruby をダウンロードします。
  • iOSのパッケージ化:Apple Xcode
  • Androidのパッケージ化:Android SDKツールおよびEclipse (オプション)。インストールパスをPATHの環境変数に追加します。

インストールの検証

Sencha Cmdが正しく機能しているかを検証するには、コマンドラインを開き、ディレクトリをご利用のアプリケーションに変更し、senchaコマンドを入力します。

出力が以下のように開始されるか確認してください。

Sencha Cmd v5.0.n.n
...

Sencha Cmdのアップグレード

sencha upgrade機能を使えば、Sencha Cmdをアップグレードできます。

Sencha Cmdの更新のチェックは以下のように行います。

sencha upgrade --check

最新版を持っていない状態で--checkオプションを使用しない場合には、sencha upgradeコマンドによって最新版のダウンロードとインストールが行われます。

sencha upgrade

インストールが終了したら、新たなコンソールまたはターミナルを起動し、PATHの環境変数への変更を取得します。

複数のバージョンの Sencha Cmd を横並びでインストールできるため、新しいリリースを安全に試してからアンインストール(または PATH を調整)し、前のバージョンに戻るだけです。ただし、sencha app upgrade を使用してアプリケーションをアップグレードした場合、旧バージョンの Sencha Cmd にダウングレードする際に「ロールバック」が必要になることがあります。

ベータ版リリース

ベータ版のリリースをチェックするには、以下のように入力します。

sencha upgrade --check --beta

最新のベータ版のバージョンをインストールするに、以下のように入力します。

sencha upgrade --beta

注意 最新のリリースは、「ベータ版」のチャンネルまたは安定版のチャンネル内にある場合があります。これは、sencha upgradeによってインストールされる現行リリースより前から存在するベータ版が、sencha upgrade --betaによってインストールされる場合があることを意味しています。

基本的なコマンド

Sencha Cmdの各機能は、カテゴリー(またはモジュール)およびコマンドで配置されます。

sencha [category] [command] [options...] [arguments...]

ヘルプ機能はhelpコマンドで利用できます。

sencha help [module] [action]

以下の例を試してみてください。

sencha help

現在のバージョンと利用できる高レベルコマンドを表示します。例:

Sencha Cmd v5.0.n.n
...

Options
  * --cwd, -cw - Sets the directory from which commands should execute
  * --debug, -d - Sets log level to higher verbosity
  * --info, -i - Sets log level to default
  * --nologo, -n - Suppress the initial Sencha Cmd version display
  * --plain, -pl - enables plain logging output (no highlighting)
  * --quiet, -q - Sets log level to warnings and errors only
  * --sdk-path, -s - The location of the SDK to use for non-app commands
  * --time, -ti - Display the execution time after executing all commands

Categories
  * app - Perform various application build processes
  * compass - Wraps execution of compass for sass compilation
  * compile - Compile sources to produce concatenated output and metadata
  * cordova - Manage Cmd/Cordova integration
  * fs - Utility commands to work with files
  * generate - Generates models, controllers, etc. or an entire application
  * manifest - Extract class metadata
  * package - Manages local and remote packages
  * phonegap - Manage Cmd/PhoneGap integration
  * repository - Manage local repository and remote repository connections
  * theme - Commands for low-level operations on themes
  * web - Manages a simple HTTP file server

Commands
  * ant - Invoke Ant with helpful properties back to Sencha Cmd
  * build - Builds a project from a legacy JSB3 file.
  * config - Load a properties file or sets a configuration property
  * help - Displays help for commands
  * js - Executes arbitrary JavaScript file(s)
  * upgrade - Upgrades Sencha Cmd
  * which - Displays the path to the current version of Sencha Cmd

カレントディレクトリ

Sencha Cmdでは、特定のカレントディレクトリを設定する必要がある場合が数多くあります。また、場合によっては関連する Sencha SDK の詳細を理解している必要もあります。適切な SDK(または「フレームワーク」)は、生成されたアプリケーションフォルダまたは(一部のコマンドの場合)抽出された SDK フォルダから実行される際には、Sencha Cmd によって自動的に決定されます。

重要 以下のコマンドの場合、Sencha Cmdは生成されたアプリケーションのルートフォルダから実行される必要があります。アプリケーションのルートフォルダから実行されない場合、コマンドは失敗します。

* `sencha generate ...` (for commands other than `app`, `package` and `workspace`)
* `sencha app ...`

これは Packages にも当てはまります。sencha package build などのコマンドを実行する場合、現在のディレクトリが目的のパッケージフォルダでなければなりません。

Sencha Cmdドキュメンテーション

Sencha Cmd の多くのガイドが理解を高めるために用意されていますので、この順序に従うことをお勧めします。高度なガイドはそれ以前のガイドの内容を理解していることを前提としているため、スキップしてしまうと混乱することがあります。

各ガイドの開始にそのガイドの前提条件へのリンクがあります。さらに、ほとんどのガイドの最後に参考文献のリンクがあります。

基礎を学んだ後は

Sencha Cmdの使用に関しては、他にも数多くの役立つ詳細な情報があります。helpコマンドで多くのリファレンスを得られますが、全ての主要な情報の参照をご希望の場合は、アドバンスドSencha Cmdをご利用ください。

トラブルシューティング

Sencha Cmdを使用する際のよくある問題に対するヒントを用意しております。

コマンドが見付からない場合

senchaをOSXやLinux上で実行してsencha: コマンドが見付かりませんまたはWindows上で実行して'sencha'が内部コマンドまたは外部コマンド、使用可能なプログラムまたはバッチファイルとして認識さまませんというエラーメッセージが表示された場合、以下の手順に従ってください。

  • 既存のターミナル/コマンドプロンプトウインドウを全て閉じてから再び開きます。
  • Sencha Cmdが正しくインストールされているか確認します。
    • インストールディレクトリが存在します。デフォルトでは、インストールパスは次のようになります。
      • Windows: C:\Users\Me\bin\Sencha\Cmd\{version}
      • Mac OS X: ~/bin/Sencha/Cmd/{version}
      • Linux: ~/bin/Sencha/Cmd/{version}
    • Sencha Cmdディレクトリへのパスは、PATH環境変数の先頭に追加されます。ターミナルから、Windows上でecho %PATH%を、またはMacやLinux上でecho $PATHを実行します。Sencha Cmdディレクトリは、出力の一部で表示する必要があります。これがそのケースでない場合は、それを手動でPATHに追加します。
    • 環境変数SENCHA_CMD_{version}は、上記のインストールディレクトリへの絶対的なパスである値によって設定されます。コマンドラインから、**echo**を使用してこの変数を表示します。出力が空である場合は、環境変数を手動で設定します。

Rubyが見付からない場合

"ruby"が認識されないことや見付からないことに関連したエラーは、Rubyがインストールされてない、またはPATH内にない場合に発生することがあります。先のシステムセットアップのセクションを参照してください。

不適切なカレントディレクトリ

現在のディレクトリを抽出されたSDKディレクトリまたはアプリケーションディレクトリのいずれかにすることを要求するコマンドを実行してしまうという間違いがよく起こりますが、そのようなディレクトリは設定されていません。この必要条件が揃っていない場合、Sencha Cmdはエラーを表示して終了します。

注意 有効なアプリケーションディレクトリは Sencha Cmd で生成されたディレクトリです。

依存関係の変換中に発生するエラー

sencha app buildコマンドは、index.htmlを読み込んで必要なクラスをスキャンすることによって機能します。アプリケーションが必要なクラスを正しく宣言しない場合、通常、ビルドは完了しますが、必要なクラスの全ては含まれていません。

指定される必要なクラス全てが揃っているかを確認するために、常に有効なデバッグコンソール(IE/Chromeの「デベロッパーツール」、FireFoxのFireBug、SafariのWebインスペクタ)で開発し、表示される全ての警告とエラーメッセージを処理してください。

警告は常に以下のように表示されます。

[Ext.Loader] Synchronously loading 'Ext.foo.Bar'; consider adding 'Ext.foo.Bar'
explicitly as a require of the corresponding class

依存関係が作成されるクラスのrequires配列のプロパティ内で’Ext.foo.Bar’をただちに追加します。これがアプリケーション全体の依存関係である場合には、Ext.application(...)ステートメント内でそれをrequires配列のプロパティに追加します。

Last updated