2016-05-18 6 views
1

haxe-js-kitのいくつかのexternsを使用しています。クライアントサイドJSをターゲットにしています。私は、コンパイル時にpackage.jsonファイルは、私がインストールする必要がある依存関係を識別する生成され、今externとJavaScriptを使用する場合、Haxeコンパイラにrequire文を使用させるにはどうすればよいですか?

--macro npm.Package.export("package.json") 

haxe-js-kit指示に従って、私は私のbuild.hxmlファイルに次の行が含まれています。

npm install 

そして、それらの依存関係がnode_modules/にインストールされています:それでは、私は実行します。今私はちょうど私がnode_modules/にダウンロードしたJSライブラリと私のアプリ(Haxeコンパイラによって生成された)のためのビルドされたJSをパッケージ化したいと思います。通常、私はこれを行うにはwebpackのようなものを使用しますが、WebpackはCommonJSまたはAMD依存宣言があるかどうかに依存します。 Haxeコンパイラは、requireステートメントをコンパイル済みJSに挿入しません。これらの依存関係はグローバルに使用可能であるとみなします。 @:jsRequire("fs")

haXeのは、コンパイル済みのJSにrequire文をCommonJSを置くためのメカニズムを提供しません。しかし、externの作成者はexternクラスにこの注釈を追加する責任があり、のようにhaxe-js-kitのようになります。

externsのクライアントとして、出力JSにrequireステートメントを含めるようHaxeコンパイラに指示する方法があるので、webpackのようなツールを使用して依存関係を1つのファイルにパッケージ化できますか?

答えて

1

あなたはおそらく、コンパイラの引数を指定してメタデータを自分で追加することができます。

--macro addMetadata('@:jsRequire("fs")', 'path.to.TheExtern') 

をこのように、あなたがソースに所有していない場合でも、あなたはhaXeのメタデータを持つクラスを飾ることができます。

これ以外の理由で、haxe-js-kit repoに問題を提出することができます。

+0

ありがとうございました。問題は提出されました。 –