Gleamのビルドシステム
GleamのビルドシステムはErlangターゲットとJavaScriptターゲットで大きく異なる。
両者に共通の仕様
ビルド時にプログラムは実行されない。そのためコンパイル時実行などは無い。
マングリングは行なわない。
依存ライブラリは全て./build/packages/配下にプロジェクト毎に逐次ダウンロードされる。
また、コンパイル結果が./build/dev/{erlang, javascript}や./build/prod/{erlang, javascript}に出力される。
このためパッケージはグローバルキャッシュされない
Gitリポジトリを依存に指定することは現時点(5/27)ではできない。
Erlangターゲット
最終的にErlangのモジュールに変換される。
先述したようにパッケージは./build/packagesにダウンロードされる。ビルドにはrebarとMixが使われる。 Erlangパッケージと同じようにElixirパッケージもgleam addでインストールできる。その際にはElixir及びMixが必要になる。 JavaScriptターゲット
ES6のJavaScriptにコンパイルされる。
main関数の実行にはGleamの基本的な型情報を含んだprelude.jsが必要になる。
prelude.jsにはTypeScript版もある。(なのでGleamで書かれたスクリプトをTS側から呼び出す際には型の補完を効かせることも可能)
/icons/hr.icon
依存解決の仕組みが分からない...全部cloneしてるっぽいけどもComamoca.icon