package.jsonはnpmパッケージの設定情報や依存パッケージのリストを行うための設定ファイルですが、
Mikenekoではビルド用の設定を行うことができます。
ビルドは主にWebアプリを基本形に、
AndroidやiOSなどのスマートフォンアプリケーション,
さらにはWindowsやMacなどのデスクトップアプリケーションなどの
個別でのプラットフォーム(環境依存)に応じたビルドに対応が可能です。
TypeScriptでのトランスパイル設定についてはtsconfig.jsonの設定を参照してください。
package.jsonがnpmパッケージの設定と併用するため
MIkeneko用のビルド設定を行うには、予めmikenekoBuildの領域をセットする必要が有ります。
この中に下記のようにプラットフォーム別でのビルド設定などを行ってください。
{
"mikenekoBuild": {
"platforms": [
{
"name": "app",
"debug": true
}
]
}
}
platformsにてプラットフォーム別でのビルド設定を行います。
例えばプラットフォーム名をappとする場合は下記のようにpackage.json内部に記述します
{
"mikenekoBuild": {
"platforms": [
{
"name": "app"
}
]
}
}
mikenekoBuildおよびplatformsを指定しない場合は自動的にwebのプラットフォームでビルドされます。
なおビルドの場所はプロジェクトディレクトリ内のoutput/{プラットフォーム名}ディレクトリで自動生成されます。
プラットフォームは任意の名称で、複数設定することも可能です。
例えばプラットフォーム名app1とapp2それぞれを設定する場合はpackage.jsonにて下記のように記述してください。
{
"mikenekoBuild": {
"platforms": [
{
"name": "app1"
},
{
"name": "app2"
}
]
}
}
プラットフォームを複数作成することで、
コンソール出力の有効/無効、またはビルドファイル圧縮、難読化の設定などをプラットフォーム別で切り分けることができます。
これはデバッグモードとリリースモード(本番用)それぞれをビルドすることと同様です。
各プラットフォーム用ディレクトリの直下にビルドされますが、
Cordova等を使用する場合、そこから任意のディレクトリに設置する必要がある場合は
optionDirを使ってサブディレクトリ以降のパスを指定できます。
下記の場合はプラットフォームapp2はoutput/app2/wwwディレクトリにビルドされます。
{
"mikenekoBuild": {
"platforms": [
{
"name": "app1"
},
{
"name": "app2",
"optionDir": "www"
}
]
}
}
ここでのコンソール出力とはconsole.logが意図的に指定されている場合に開発者モードにてコンソール出力の有効/無効の設定です。
ただしconsole.errorなどは出力されます。
各プラットフォームにてdebugを下記のように指定します。
デフォルトで何も指定がない場合は、コンソール出力はされません。
{
"mikenekoBuild": {
"platforms": [
{
"name": "app1"
},
{
"name": "app2",
"debug": true,
}
]
}
}
ビルドファイルの圧縮を行うにはcodeCompressをtrueで指定します。
圧縮時はコード内に記載されているコメントアウトはすべて削除された状態となります。
{
"mikenekoBuild": {
"platforms": [
{
"name": "app1"
},
{
"name": "app2",
"codeCompress": true,
}
]
}
}
ビルドファイルからコードの秘匿化を行う方法として、コードの難読化を行うことができます。
難読化を行うにはobfuscatedをtrueで指定します。
ただし上記のコード圧縮codeCompressと併用する場合、
コードの圧縮率が下がる可能性があります。
{
"mikenekoBuild": {
"platforms": [
{
"name": "app1"
},
{
"name": "app2",
"obfuscated": true,
}
]
}
}
Mikenekoではビルド(Webビルド)にデフォルトで専用のビルドバンドル(WebBuilder)を使ってビルドされます。
一方でWebPackにも対応しております。
(ただし、ビルドする環境においてWebpackがグローバルインストールされていることが必須です。)
WebPackについてはこちらを参照
https://webpack.js.org/
WebPackを使ってビルドする場合は、package.jsonにて下記のように
プラットフォーム別の設定でbuildの項目をwebpackに指定してビルド実行します。
ビルド時にWebpack用のwebpack.config.jsなどの設定ファイルが自動的に設置されます。
package.jsonについてはこちらを参照
{
"mikenekoBuild": {
"platforms": [
{
"name": "app",
"build": "webpack",
"debug": true
}
]
}
}
ビルドハンドラをデフォルトのWebBuilderを使用している場合で、
ブラウザ上で各ソースファイルをソースマッピングで表示させるには
mappingををtrueで指定します。
{
"mikenekoBuild": {
"platforms": [
{
"name": "app",
"mapping": true,
"debug": true
}
]
}
}