node-gypとは


123

node-gyp私のシステムファイルを使用してNode.JSパッケージをビルドする理由と理由を誰かに説明してもらえますか?

  1. Iiがノードプロジェクトをビルドし、node-gyp内部で使用する場合。
  2. 次に、そのプロジェクトをtarし、別のシステムに移動しました
  3. そこで解凍し、使用しようとします

このアプローチは機能しますか?


17
それはgithubページgithub.com/nodejs/node-gypで説明されています。基本的にnode-gypはのようmakeです。これは、C ++プロジェクトのコンパイルプロセスを制御するために使用されるツールです。ただし、node.jsアドオン(C ++で記述されたモジュール)用に特別に設計されています。したがって、同じCPUを使用している場合は、別のシステムに移動しても機能する可能性があります。別のOSまたはCPUへの移動(たとえば、x86から​​ARMへ)は機能しません。Linuxの場合、同じディストリビューションの異なるバージョンの別のディストリビューションに移動しても、機能しない場合があります。node.jsの別のバージョンへの移行が機能するかどうかは100%
わかりません

2
実行するyarn why node-gypと、次の結果が返されます:のでnode-sass、他の用途があると確信していますが、あなたまたはあなたの愛する誰かがと診断されている場合は、プロジェクトに含まれている可能性がありますsass
Kzqai

別のノードバージョンに移動する@slebetmanは機能しませんが、それが100%正しいかどうかはわかりませんが、私の経験から、nodejsバージョンのアップグレード後に古いnode-gypを削除する必要があり、モジュールのインストール中にバックグラウンドで自動的に再構築されます。
Lukas Liesis

回答:


134

node-gypNode.jsアドオンをコンパイルするツールです。Node.jsアドオンは、CまたはC ++で記述されたネイティブのNode.jsモジュールであるため、マシンでコンパイルする必要があります。node-gypなどのツールでコンパイルした後、require()他のNode.jsモジュールと同じように、それらの機能にを介してアクセスできます。

モジュールが機能しないと示唆したことをした場合は、プログラムを移動したシステムでnode-gypを使用してモジュールをコンパイルまたはビルドする必要があります。

node-gyphttps : //github.com/nodejs/node-gyp

Node.jsアドオン:https : //nodejs.org/api/addons.html


28
認めなければならない、私は通常10マイル離れた場所で実行されるnode-gypを使用するモジュールnpmjsを見ない
PirateApp

38
最近、NodeJSで書かれた(見たところ)比較的シンプルなWebアプリのクローンを作成できることはエキサイティングです。突然、CおよびC ++で書かれたネイティブコーデックをコンパイルするソフトウェアをダウンロードする必要があります。最良の部分は、問題が発生したときであり、これを解決するためにWebデザインスキルをどうするかを正確に理解しています。
ジム・アホ

3
@ Mr-Programsこれはバインディングによって接続されていますが、これも
ユーザー

2
@JimAho理想的には、多くの場合、コードはブラックボックス化されています。良い点は、高速で十分にサポートされたツールを使用してxmlの解析などの特定のことを行うことができ、遅いまたは壊れている可能性のあるjsポートを待つ必要がないことです。そうは言っても、私は可能な限りネイティブのjsを好みますが、ポジションが十分に確立されているかどうかはわかりません。また、C / C ++は、意図的にOSに依存しない(通知など)場合に備えて、移植性が非常に高くなければなりません。さらに、バグが発生しやすいパッケージは、そのバグの出所に関係なく、広く採用されていません。
アダムトーリー

3
ちなみに、「gyp」は「プロジェクトを生成する」の略であると思います
Tom
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.