2

このページで説明されている手順を使用しました:http://nodejs.org/api/addons.htmlそしてnode-gypツールを使用してaddon.nodeファイルを正常に作成しました。それは正常に動作し、c++静的ライブラリのラッパーです。

これを配布したいので、以下を使用してpackage.jsonファイルを作成しました。

npm init

「npminstall.-g」を使用してテストしますが、モジュールを再コンパイルしようとします。これは、.nodeファイルに埋め込んでいるライブラリが必要になるため、達成が困難です。.nodeファイルを配布することは可能ですか。私はすでに私のシステムでコンパイルしましたか?

コンパイルされた.nodeファイルをnpmパッケージに含めて、npmレジストリにアップロードするにはどうすればよいですか。私はそれを達成するための一歩に過ぎないと確信していますが、どこから始めればよいのかわかりません。

依存関係について読みましたが、モジュールが他のモジュールに依存していて、独自の.nodeファイルではない場合に適しているようです。

ご協力いただきありがとうございます。

4

1 に答える 1

3

わかりました、私はついに私が達成したいことをしました、ここに誰かがこれを必要とする場合のオプションがあります:

  1. コンパイルを回避するために、新しいフォルダーを作成し、そこにpackage.jsonを.nodeファイルと一緒にコピーすることができますが、これは見つかりませんでした。試してみたところ、機能しました。
  2. ユーザーが自分でコンパイルできるように、必要なライブラリを提供します。

最初のものはうまくいきましたが、Windows、Linux、Macなどのパッケージを作成する必要があります。「Linuxを使用している場合:npm install xxx-linux」と言うのは非常に奇妙に見えるので、調整することにしました。ユーザーがモジュールをコンパイルできるようにするための私のライブラリ。

これを行うために、必要なインクルードヘッダーが必要な限り、必要なライブラリがプリコンパイルされた「client-dev」インストーラーを作成し、プリインストールされたライブラリとヘッダーを使用してコンパイルされるノードモジュールを作成しました。モジュールをインストールするには、ユーザーが最初にapt-get、Windowsインストーラー、またはmac pkgを使用して依存関係をインストールする必要があることを説明するために、Webサイトにヘルプを追加する必要があります。

これは私にとってはうまくいきますが、それが長期的に維持可能かどうかはわかりませんが、これを行うためのより良い方法は見つかりませんでした。(私の目標を最終的に啓発した唯一のリンクは、「プリコンパイルされたライブラリでノードモジュールを使用する場合は、とにかく悪夢があります」というものでした...ノードjsで最初から完全な実装を行うのではなく、それを好みますjava、c#、nodejs、phpなどのバージョンを維持します。

于 2012-11-15T18:38:24.750 に答える