Generate

概要

nexacro platformで作成されたアプリケーションは、すべてHTML5コンテンツをベースに作成されます。生成されたアプリケーションをどのような形でどのような環境でユーザーが使用するかによって、実行時またはHTML5で区切られます。ランタイムは、nexacro platformランナー(Runner)でアプリケーションを実行することになり、HTML5アプリケーションは、一般的に使用するWebブラウザで該当するページのURLにアクセスする方式でアプリケーションを実行するようになります。

nexacro platformアプリケーションをnexacro studioで実行すると、コードを変換(Generate)する過程を経ることになります。このような一連の過程は、QuickViewを実行したり、アーカイブファイルを作成するときに自動的に実行され、Buildメニューから明示的に、指定のフォームや、プロジェクトの作業を実行することができます。

内部的にはnexacro studioに含まれたnexacrogenerator.exeを呼び出し、このモジュールが*.xadl, *.xfdl などのファイルをJavaScriptファイルに変換する作業を行います。

アプリケーションの開発およびテストを完了し、配布および運用段階では、ユーザーが受信するファイルを最小化し、必要によって暗号化が必要です。このような場合nexacrocompressor.exeで提供するオプションを適用することができます。

生成されたスクリプトファイルは、クライアントに保存され、必要によってWebサーバー上で実行可能な場所に移動する必要があります。もし、Webサーバーがクライアントで動作している場合、nexacro studioで出力結果の位置を、ローカルのWebサーバーのパスに指定します。

컴파일 전 후 파일명

対象ファイル

生成ファイル

説明


index.html

アプリケーションを実行させるデフォルトHTMLファイル


QuickView.html

QuickView実行時に使用するHTMLファイル

*.xadl

*.xadl.js

ADLファイル

*.xadl.quickview.js

QuickView実行時に使用するADLファイル

/Service/*.xfdl

/Service/*.xfdl.js

FDL(画面)ファイル

default.xtheme

_theme_/default/theme.css

_theme_/default/theme.css.js

_theme_/default/images

テーマとイメージファイルのフォルダ

/nexacro14lib

/nexacro14lib

オプションに応じてマージ処理

nexacrogenerator.exeの使用法

nexacrogenerator.exeは、下記のオプションを使用してコンソールから直接実行が可能です。

オプション

nexacrogenerator.exe -A -O [args...]
XHTML5Compiler.exeのオプション

オプション

説明

-A <Target ADL Path>

GenerateするアプリケーションのTarget ADLパスを指定します。

このオプションは、必ず入力される必要があります。

-O <Output Path>

Generateされたファイルが保存されるOutputパスを指定します。

指定されたパスが存在しない場合、自動的にパスを作成します。

このオプションは、必ず入力される必要があります。

-P <Project Name>

Generateされたファイルを保存するプロジェクト名を指定します。

入力されたプロジェクト名は-Oの入力値に追加され、ファイルが保存されるパスとして指定されます。

入力しない場合は、-Aに入力されたXADLファイル名がプロジェクト名に自動的に指定されます。

-B <library Path>

Generateに必要なライブラリファイルがあるパスを指定します。

入力しないと、"nexacro.exe"がインストールされたパスにあるデフォルトライブラリファイルを使用します。

-M

Mergeオプションを適用してジェネレートされます。

-AO

Moduleファイルのみジェネレートするときに使用します。

-Mオプションに応じて、マージを実行します。

注意:-AO、-S、-F、-Tと一緒に使用することができません。

-MO

Moduleファイルのみジェネレートするときに使用します。

-Mオプションに応じて、マージを実行します。

-S <Service ID>

GenerateするService Prefix IDを指定します。

TypeDefinitionで定義したService Prefix IDのみを指定することができます。

注意:-AO、-F、-Tと一緒に使用することができません。

-F <path1>,[<path2>,…]

Generateするファイルのパスのリストを指定します。

複数の入力時 ','(Comma)または ';'(Semicolon)で区切ります。

注意:-AO、-S、-Tと一緒に使用することができません。

-T <themeid1>,[<themeid2>,…]

GenerateするTheme IDを指定します。

複数の入力時 ','(Comma)または ';'(Semicolon)で区切ります。

注意:-AO、-S、-Fと一緒に使用することができません。

-TABORDER

Generate時にコンポーネントをTab Order順に生成します。

入力しないとZ-Order順に生成します。

-L <Path>

Generateの進行過程を保存するログファイルのパスを指定します。

指定されたパスが存在しない場合、自動的にパスを作成します。

ログファイルの作成時にGenerate実行時間が増加することがあります。

-H

"nexacrogenerator.exe"コマンドのヘルプ情報を提供します。

-Hオプションは、ユーザーのシステム設定によって、英語、日本語、韓国語をサポートします。

オプション使用例

Application全体をGenerateする場合

「C:\TestGenerate\TestGenerate.xadl」ファイルを基準にアプリケーションをGenerateて「E:\ResultGenerate」に出力します。
アプリケーションの実行に必要な実行ファイルとテーマファイル、モジュールファイルも一緒に生成されます。
nexacrogenerator.exe -A "C:\TestGenerate\TestGenerate.xadl" -O "E:\ResultGenerate"
E:\ResultGenerate\TestGenerate\index.html
E:\ResultGenerate\TestGenerate\QuickView.html
E:\ResultGenerate\TestGenerate\popup.html
E:\ResultGenerate\TestGenerate\start.json
E:\ResultGenerate\TestGenerate\TestGenerate.xadl.js
E:\ResultGenerate\TestGenerate\TestGenerate.xadl.quickview.js
E:\ResultGenerate\TestGenerate\_theme\…
E:\ResultGenerate\TestGenerate\Base\…
…
E:\ResultGenerate\TestGenerate\nexacro14lib\framework\Platform.js
E:\ResultGenerate\TestGenerate\nexacro14lib\framework\Systembase.js
…
E:\ResultGenerate\TestGenerate\nexacro14lib\component\ComComp\Button.js
E:\ResultGenerate\TestGenerate\nexacro14lib\component\ComComp\Combo.js
…

-Mオプションを追加した場合には、モジュールファイルをコンポーネント、オブジェクトごとに生成せずに、各グループごとに圧縮して生成します。

nexacrogenerator.exe -A "C:\TestGenerate\TestGenerate.xadl" -O "E:\ResultGenerate" -M
E:\ResultGenerate\TestGenerate\index.html
E:\ResultGenerate\TestGenerate\QuickView.html
E:\ResultGenerate\TestGenerate\popup.html
E:\ResultGenerate\TestGenerate\start.json
E:\ResultGenerate\TestGenerate\TestGenerate.xadl.js
E:\ResultGenerate\TestGenerate\TestGenerate.xadl.quickview.js
E:\ResultGenerate\TestGenerate\_theme\…
E:\ResultGenerate\TestGenerate\Base\…
…
E:\ResultGenerate\TestGenerate\nexacro14lib\framework\Framework.js
E:\ResultGenerate\TestGenerate\nexacro14lib\component\ComCom.js
E:\ResultGenerate\TestGenerate\nexacro14lib\component\CompBase.js
…

Generate時OutputパスにXADL名ではない使用者が指定した名前にパスを指定する場合

"C:\TestGenerate\TestGenerate.xadl"ファイルを基準にGenerateする時、Projectパス名を"TestGenerate2"に変更して"E:\ResultGenerate"に出力します。
アプリケーションの実行に必要な実行ファイルとThemeファイルも一緒に生成されます。
nexacrogenerator.exe -A "C:\TestGenerate\TestGenerate.xadl" -O "E:\ResultGenerate" -P "TestGenerate2"
E:\ResultGenerate\TestGenerate2\index.html
E:\ResultGenerate\TestGenerate2\QuickView.html
E:\ResultGenerate\TestGenerate2\popup.html
E:\ResultGenerate\TestGenerate2\start.json
E:\ResultGenerate\TestGenerate2\TestGenerate.xadl.js
E:\ResultGenerate\TestGenerate2\TestGenerate.xadl.quickview.js
E:\ResultGenerate\TestGenerate2\_theme\…
E:\ResultGenerate\TestGenerate2\Base\…
…

Generate時に別のライブラリパスを指定する場合

"C:\TestGenerate\TestGenerate.xadl"ファイルを基準にアプリケーションをGenerateする時、参照するライブラリパスを "C:\nexacro14lib"で指定し、"E:\ResultGenerate"に出力します。
ライブラリパスを指定しなかった場合には、 "nexacro.exe" インストールパスのライブラリを参照してGenerateします。
nexacrogenerator.exe -A "C:\TestGenerate\TestGenerate.xadl" -O "E:\ResultGenerate" -B "C:\nexacro14lib"
E:\ResultGenerate\TestGenerate\index.html
E:\ResultGenerate\TestGenerate\QuickView.html
E:\ResultGenerate\TestGenerate\popup.html
E:\ResultGenerate\TestGenerate\start.json
E:\ResultGenerate\TestGenerate\TestGenerate.xadl.js
E:\ResultGenerate\TestGenerate\TestGenerate.xadl.quickview.js
E:\ResultGenerate\TestGenerate\_theme\…
E:\ResultGenerate\TestGenerate\Base\…
…

特定XADLファイルのみ変換する場合

"C:\TestGenerate\TestGenerate.xadl"に入力されたXADLファイルのみGenerateして、 "E:\ResultGenerate"に出力します。
アプリケーションの実行に必要な実行ファイルも一緒に生成され、Themeファイルは生成されません。
そして、-T、-S、-F、-AOコマンドは、同時に使用することができません。
nexacrogenerator.exe -A "C:\TestGenerate\TestGenerate.xadl" -O "E:\ResultGenerate" -AO
E:\ResultGenerate\TestGenerate\index.html
E:\ResultGenerate\TestGenerate\QuickView.html
E:\ResultGenerate\TestGenerate\popup.html
E:\ResultGenerate\TestGenerate\start.json
E:\ResultGenerate\TestGenerate\TestGenerate.xadl.js
E:\ResultGenerate\TestGenerate\TestGenerate.xadl.quickview.js

特定サービスパスのみを変換する場合

"C:\TestGenerate\TestGenerate.xadl"ファイルを基準にTypeDefinitionファイルに定義されたService Prefix IDでGenerateして、"E:\ResultGenerate"に出力します。
Service IDは、単一の入力のみ可能です。
ただし、-Sの入力値は必ずTypeDefinitionに定義されたService Prefix IDである必要があります。
そして、-T、-S、-F、-AOコマンドは、同時に使用することができません。
nexacrogenerator.exe -A "C:\TestGenerate\TestGenerate.xadl" -O "E:\ResultGenerate" -S "Base"
E:\ResultGenerate\TestGenerate\Base\…
E:\ResultGenerate\TestGenerate\Base\…
…

特定ファイルを変換する場合

"C:\TestGenerate\TestGenerate.xadl"ファイルを基準に"C:\TestGenerate\Base\form1.xfdl", "C:\TestGenerate\Base\form2.xfdl"ファイルをGenerateして"E:\ResultGenerate"に出力します。
ファイルは単一、または複数の入力が可能です。
ただし、-Fの入力値にXADL、XTHEMEファイルは使用できません。
そして、-T、-S、-F、-AOコマンドは、同時に使用することができません。
nexacrogenerator.exe -A "C:\TestGenerate\TestGenerate.xadl" -O "E:\ResultGenerate" -F "C:\TestGenerate\Base\form1.xfdl", "C:\TestGenerate\Base\form2.xfdl"
E:\ResultGenerate\TestGenerate\Base\form1.xfdl.js
E:\ResultGenerate\TestGenerate\Base\form2.xfdl.js

特定XTHEMEのみGenerateする場合

case 1) Cacheフォルダに登録されたTheme

"C:\TestGenerate\TestGenerate.xadl"ファイルを基準に"%USERAPP%\Cache\Theme\Gray.xtheme"ファイルをGenerateして"E:\ResultGenerate"に出力します。
Cacheフォルダに登録されたThemeをGenerateする場合には"Gray.xtheme"で入力します。(相対パスを指定せずにTheme名のみ入力する場合にはCacheフォルダに登録されたThemeとして認識します。)
nexacrogenerator.exe -A "C:\TestGenerate\TestGenerate.xadl" -O "E:\ResultGenerate" -T "Gray.xtheme"
E:\ResultGenerate\TestGenerate\_theme_\Gray\theme.css.js
E:\ResultGenerate\TestGenerate\_theme_\Gray\images\...
…

case 2) XADL基準に相対パスまたはPrefixパスに登録されたTheme

"C:\TestGenerate\TestGenerate.xadl"ファイルを基準に"C:\TestGenerate\Themes\NewTheme1.xtheme"ファイルをGenerateして、"E:\ResultGenerate"に出力します。
使用者が指定したパスに存在するThemeをGenerateする場合には、XADL基準に相対パスまたはPrefixパスで入力します。
nexacrogenerator.exe -A "C:\TestGenerate\TestGenerate.xadl" -O "E:\ResultGenerate" -T "Themes\NewTheme1.xtheme"
E:\ResultGenerate\TestGenerate\_theme_\Themes\NewTheme1\theme.css.js
E:\ResultGenerate\TestGenerate\_theme_\Themes\NewTheme1\images\...
…

case 3) case 1とcase 2の混合

"C:\TestGenerate\TestGenerate.xadl"ファイルを基準に"%USERAPP%\Cache\Theme\Gray.xtheme"、"C:\TestGenerate\Themes\NewTheme1.xtheme"ファイルをGenerateして、"E:\ResultGenerate"に出力します。

nexacrogenerator.exe -A "C:\TestGenerate\TestGenerate.xadl" -O "E:\ResultGenerate" -T "Gray.xtheme,Themes\NewTheme1.xtheme"
E:\ResultGenerate\TestGenerate\_theme_\Gray\theme.css.js
E:\ResultGenerate\TestGenerate\_theme_\Gray\images\...
…
E:\ResultGenerate\TestGenerate\_theme_\Themes\NewTheme1\theme.css.js
E:\ResultGenerate\TestGenerate\_theme_\Themes\NewTheme1\images\...
…

モジュールファイルのみを変換する場合

case 1) Mergeオプションを適用しない。

「C:\TestGenerate\TestGenerate.xadl」ファイルに基づいて、下位のnexacro14libの中のモジュールファイルをコピーします。
nexacrogenerator.exe -A "C:\TestGenerate\TestGenerate.xadl" -O "E:\ResultGenerate" -MO
E:\ResultGenerate\TestGenerate\nexacro14lib\framework\Platform.js
E:\ResultGenerate\TestGenerate\nexacro14lib\framework\Systembase.js
…
E:\ResultGenerate\TestGenerate\nexacro14lib\component\ComComp\Button.js
E:\ResultGenerate\TestGenerate\nexacro14lib\component\ComComp\Combo.js
…

case 2) 特定のパスのモジュールファイルを使用する。

-Bオプションで指定されたパスに基づいて、モジュールファイルをコピーします。
nexacrogenerator.exe -A "C:\TestGenerate\TestGenerate.xadl" -O "E:\ResultGenerate" -MO  -B "C:\nexacro14lib"
E:\ResultGenerate\TestGenerate\nexacro14lib\framework\Platform.js
E:\ResultGenerate\TestGenerate\nexacro14lib\framework\Systembase.js
…
E:\ResultGenerate\TestGenerate\nexacro14lib\component\ComComp\Button.js
E:\ResultGenerate\TestGenerate\nexacro14lib\component\ComComp\Combo.js
…

case 3) Mergeオプションを適用する。

「C:\TestGenerate\TestGenerate.xadl」ファイルに基づいて、下位のnexacro14libのモジュールファイルを圧縮されたファイルに変換します。
nexacrogenerator.exe -A "C:\TestGenerate\TestGenerate.xadl" -O "E:\ResultGenerate" -MO -M
E:\ResultGenerate\TestGenerate\nexacro14lib\framework\Framework.js
E:\ResultGenerate\TestGenerate\nexacro14lib\component\ComCom.js
E:\ResultGenerate\TestGenerate\nexacro14lib\component\CompBase.js
…

変換時のコンポーネントの作成順序をtaborder値に基づいてソートした後に変換する場合

「C:\TestGenerate\TestGenerate.xadl」ファイルに基づいて、アプリケーションを変換して「E:\ResultGenerate」に出力します。
xfdlファイルを変換するとき、コンポーネントのtaborder値の順にソートして変換します。
-Sまたは-Fコマンドを使用した場合にも-TABORDERコマンドを使用することができます。
nexacrogenerator.exe -A "C:\TestGenerate\TestGenerate.xadl" -O "E:\ResultGenerate" -TABORDER
E:\ResultGenerate\TestGenerate\index.html
E:\ResultGenerate\TestGenerate\QuickView.html
E:\ResultGenerate\TestGenerate\popup.html
E:\ResultGenerate\TestGenerate\start.json
E:\ResultGenerate\TestGenerate\TestGenerate.xadl.js
E:\ResultGenerate\TestGenerate\TestGenerate.xadl.quickview.js
E:\ResultGenerate\TestGenerate\_theme\…
E:\ResultGenerate\TestGenerate\Base\…
…

Generate結果をLogファイルに保存する場合

"C:\TestGenerate\TestGenerate.xadl"ファイルを基準にアプリケーションをGenerateして、"E:\ResultGenerate"に出力し、ログの内容を"E:\ResultGenerate\Log\TestGenerate_1.1.01.txt"に保存します。

nexacrogenerator.exe -A "C:\TestGenerate\TestGenerate.xadl" -O "E:\ResultGenerate" -L "E:\ResultGenerate\Log\TestGenerate_1.1.01.txt"
E:\ResultGenerate\TestGenerate\index.html
E:\ResultGenerate\TestGenerate\QuickView.html
E:\ResultGenerate\TestGenerate\popup.html
E:\ResultGenerate\TestGenerate\start.json
E:\ResultGenerate\TestGenerate\TestGenerate.xadl.js
E:\ResultGenerate\TestGenerate\TestGenerate.xadl.quickview.js
E:\ResultGenerate\TestGenerate\_theme\…
E:\ResultGenerate\TestGenerate\Base\…
…
E:\ResultGenerate\Log\TestGenerate_1.1.01.txt

nexacrocompressor.exe

nexacrocompressor.exeは、以下の表のオプションを使用して、コンソールから直接実行することもできます。

オプション

nexacrocompressor.exe -F -O [args...]
nexacrocompressor.exe -P -O [args...]
XHTML5Compiler.exe의 옵션

オプション

説明

'-F <file1>,[<file2>,…]

Compressするファイルパスを指定します。

複数で入力時 ','(Comma)または ';'(Semicolon)で区切ります。

-Fまたは-Pオプションは、必ず入力する必要があり、重複して使用することができません。

注意:-Fと-Oは、ファイルの順序と数が一致する必要があります。

-P <directory>

Compressするディレクトリのパスを指定します。

-Fまたは-Pオプションは、必ず入力する必要があり、重複して使用することができません。

注意:-Pと-Oには、それぞれ1つのディレクトリのみを指定する必要があります。

-O <file1>,[<file2>,…]

-Fでファイルを指定した場合

Compressされたファイルが保存されるOutputパスを指定します。

複数で入力時 ','(Comma)または ';'(Semicolon)で区切ります。

注意:-Fを使用する場合、-Fと-Oはファイルの順序と数が一致する必要があります。

-O <directory>

-Pでディレクトリを指定した場合

Compressされたファイルが保存されるOutputパスを指定します。

注意:-Pを使用する場合、-Pと-Oはファイルの順序と数が一致する必要があります。

指定されたパスが存在しない場合、自動的にパスを作成します。

このオプションは、必ず入力される必要があります。

注意:-Fを使用する場合、-Fと-Oはファイルの数が一致する必要があります。

-S <string>

Compressされたファイル名にサフィックスを指定します。

-Shrink

変数名を難読化します。

eval構文を含む関数は難読化しません。

-IgnoreEval

eval関数に関係なく、難読化します。(推奨しない)

注意:このオプションを使用するには、-Shrinkオプションを先に使用する必要があります。

-Compile

nexacro Runtimeで使用されている暗号化されたファイルに変換します。

※ このオプションを使用して取得した結果物は、nexacro Runtimeでのみ使用可能です。

該当オプションの後にパスを指定してコンパイルされたファイルを別途に保存することができます。

該当オプションの後にパスを指定しない場合、-Oオプションに該当するパスにコンパイルされたファイルが生成されます。

-Compile [<file1>,<file2>,...]

-Fオプションでファイルを指定した場合

暗号化されたファイルが保存される Outputパスを指定します。

複数のファイルを入力するときは「、」(カンマ)または「;」(セミコロン)で区切ります。

※ -Fオプションを使用する場合に -Fと -Compileはファイルの順序と数が一致する必要があります。

※ -Fオプションを使用する場合、XMLファイル(拡張子が「.xml」であるファイル)もコンパイル対象に含みます。

-Compile [<directory>]

-Pオプションでディレクトリを指定した場合

暗号化されたファイルが保存される Outputパスを指定します。

※ -Pオプションを使用する場合、-Pと -Compileはそれぞれ一つのディレクトリだけを指定する必要があります。

-Ignorecompress <.ignorecompress>

Compressせずに処理する必要があるリストを保存した.ignorecompressファイルのパスを指定します。

注意:-Pを使用する場合にのみ適用されるオプションです。

-H

"nexacrocompressor.exe"コマンドのヘルプ情報を提供します。

オプション使用例

特定のjsファイルをCompressする場合

"C:\JS\test1.js, "C:\JS\childdir\test3.js"ファイルをCompressして"E:\JS\test1.js", "E:\JS\childdir\test3.js"で出力します。
コメント/空白を削除
nexacrocompressor.exe -F "C:\JS\test1.js,C:\JS\childdir\test3.js" -O "E:\JS\test1.js,E:\JS\childdir\test3.js"
E:\JS\test1.js
E:\JS\childdir\test3.js

特定のディレクトリに存在するjsファイルをCompressする場合

"C:\JS"ディレクトリに存在するjsファイルをCompressして"E:\JS"ディレクトリに出力します。
コメント/空白を削除
nexacrocompressor.exe -P "C:\JS" -O "E:\JS"
E:\JS\test.js
E:\JS\test1.js
E:\JS\test2.js
E:\JS\childdir\test3.js
E:\JS\childdir\test4.js

Compress時、Outputファイル名に接尾辞を指定する場合

"C:\JS\test1.js"ファイルをCompressして"E:\JS\test1.js"で出力するとき、接尾辞"_2014100601"を追加します。
コメント/空白を削除
nexacrocompressor.exe -F "C:\JS\test1.js" -O "E:\JS\test1.js" -S "_2014100601"
E:\JS\test1_2014100601.js

Compress時Outputファイルに変数難読化を適用する場合

"C:\JS\test1.js"ファイルをCompressして"E:\JS\test1.js"で出力するとき、接尾辞"_2014100601"を追加します。

コメント/空白を削除
ただし、関数の内部でeval()関数を使用した場合、該当関数は、難読化対象から除外します。
nexacrocompressor.exe -F "C:\JS\test1.js" -O "E:\JS\test1.js" -Shrink
E:\JS\test1.js

圧縮時Outputファイルに変数難読化を適用する際、難読化の範囲でeval関数を無視する場合

"C:\JS\test1.js"ファイルをCompressする時、変数難読化も適用しますがeval関数の内部はスキップして"E:\JS\test1.js"に出力します。

コメント/空白を削除
eval()関数と関係なく、すべて実行します。
nexacrocompressor.exe -F "C:\JS\test1.js" -O "E:\JS\test1.js" -Shrink -IgnoreEval
E:\JS\test1.js

圧縮時対象リストから特定のファイルを除外する場合

ディレクトリに存在するjsファイルを圧縮して、"E:\JS"ディレクトリに出力します。この過程で-IgnoreCompressオプションの値として入力した.IgnoreCompressファイルに定義されたファイルは、圧縮対象から除外します。
コメントと空白は削除します。(.IgnoreCompressファイルに定義されたファイルは除外します。)
nexacrocompressor.exe -P "C:\JS" -O "E:\JS" -IgnoreCompress "C:\nexacro14\Project\.IgnoreCompress"
<?xml version="1.0" encoding="utf-8"?>
<CompressConfigue version="1.0">
	<IgnoreCompress>
		<File path=".\test1.js"/>
		<File path=".\Childdir\test4.js"/>
	</IgnoreCompress>
</CompressConfigue>
E:\JS\test.js
E:\JS\test1.js (非圧縮)
E:\JS\test2.js
E:\JS\childdir\test3.js
E:\JS\childdir\test4.js (非圧縮)