GitHubじゃ!Pythonじゃ!

GitHubからPython関係の優良リポジトリを探したかったのじゃー、でも英語は出来ないから日本語で読むのじゃー、英語社会世知辛いのじゃー

nodejs

node-gyp – Node.jsネイティブアドオンビルドツール

投稿日:

Node.jsネイティブアドオンビルドツール

ノード-gyp

Node.jsネイティブアドオンビルドツール

node-gypは、Node.jsのネイティブアドオンモジュールをコンパイルするために、Node.jsで書かれたクロスプラットフォームのコマンドラインツールです。 Chromiumチームが使用するgypプロジェクトをバンドルし、ビルドプラットフォームのさまざまな違いに対処する苦労を取り除きます。 ノードv0.8ために削除されたnode-wafプログラムへの置き換えです。 まだwscriptファイルを持っているノード用のネイティブアドオンを持っているならば、nodeの最新バージョンをサポートするためにbinding.gypファイルを必ず追加してください。

実際にシステムにインストールされているノードのバージョンに関係なく、ノードの複数のターゲット・バージョンがサポートされています(つまり、 0.8 、…、 node-gypなど)( node-gypは必要な開発ファイルまたはヘッダーをターゲットバージョン)。

特徴

  • 使いやすい、一貫したインターフェース
  • すべてのプラットフォームでモジュールをビルドするのと同じコマンド
  • ノードの複数のターゲットバージョンをサポート

インストール

npmインストールできます:

$ npm install -g node-gyp

あなたはまたインストールする必要があります:

Unix上で

  • pythonv2.7推奨、 v3.xxはサポートされていません
  • make
  • GCCのような適切なC / C ++コンパイラツールチェーン

macOSについて

  • pythonv2.7推奨、 v3.xxはサポートされていません )(macOSにはすでにインストールされています)
  • Xcode
    • また、Xcode経由でCommand Line Toolsをインストールする必要がありCommand Line Tools Xcode -> Preferences -> Downloads (またはxcode-select --install端末でxcode-select --installする)の下にあります。
      • この手順でgccmakeを含む関連ツールチェーンがインストールされmake

Windowsの場合

オプション1

高度なPowerShellまたはCMD.exe(管理者として実行)からnpm install --global --production windows-build-toolsを使用して、Microsoftのwindows-build-toolsを使用して、必要なすべてのツールと設定をnpm install --global --production windows-build-toolsます。

オプション2

ツールと設定を手動でインストールする:

  • Visual C ++ビルド環境:

    • オプション1: 既定のインストールオプションを使用してVisual C ++ビルドツールインストールします。

    • オプション2: Visual Studio 2015をインストールし、セットアップ中にVisual C ++用の共通ツールを選択します。 これは、デスクトップ版の無料コミュニティとExpressでも動作します。

    • オプション3:既にVisual Studio 2015がインストールされていて、セットアップ中にVisual C ++用共通ツールをインストールしなかった場合は、 File -> New -> Projectを選択し、 Templates -> Other Languages -> Visual C++ OkとVisual Studioは、「欠落機能のインストール」/「Windowsアプリケーションプロジェクトを開発するためにはユニバーサルWindowsアプリケーション開発ツールが必要」というVisual C ++用共通ツールをインストールすることを提案します。 ダイアログ。

    💡 [Windows Vista / 7のみ]には.NET Framework 4.5.1が必要です

  • Python 2.7v3.xxはサポートされていません)をインストールし、 npm config set python python2.7を実行してください(または適切なPythonのバージョンとパスを指定する方法については、以下を参照してください)。

  • cmd、 npm config set msvs_version 2015起動する

上記の手順がうまくいかなかった場合は、 MicrosoftのNode.js Windowsガイドラインをご覧ください。

複数のPythonバージョンがインストールされている場合は、 ‘ – python’変数を設定することで、 node-gyp使用するPythonバージョンを特定できます。

$ node-gyp --python /path/to/python2.7

node-gypnpm呼び出され、複数のバージョンのPythonがインストールされている場合、 npmの ‘python’設定キーを適切な値に設定することができます:

$ npm config set python /path/to/executable/python2.7

使い方

ネイティブアドオンをコンパイルするには、まずそのルートディレクトリに移動します。

$ cd my_node_addon

次のステップは、現在のプラットフォーム用の適切なプロジェクトビルドファイルを生成することです。 そのためにconfigureを使う:

$ node-gyp configure

Visual C ++ビルドツール2015では自動検出が失敗するため、– --msvs_version=2015を追加する必要があります(上記のようにnpmで実行する場合は不要)。

$ node-gyp configure --msvs_version=2015

注意configureステップは、処理するカレントディレクトリのbinding.gypファイルを探します。 binding.gypファイルの作成方法については、以下を参照してください。

これで、 build/ディレクトリにMakefile (Unixプラットフォーム)またはvcxprojファイル(Windows)がbuild/れます。 次に、 buildコマンドを呼び出します。

$ node-gyp build

コンパイルされた.nodeバインディングファイルがあります。 コンパイルされたバインディングは、ビルドモードに応じてbuild/Debug/またはbuild/Release/になります。 この時点で、Nodeで.nodeファイルを要求し、テストを実行することができます。

注: bindingsファイルのDebugビルドを作成するには、 configurebuildまたはrebuildコマンドを実行するときに--debug (または-d )スイッチを渡します。

“binding.gyp”ファイル

以前はnode-wafがあったときにwscriptファイルを作成しなければなりwscriptでした。 その代わりに、 binding.gypファイルがあります。これは、モジュールをJSONライクな形式で構築するための設定を記述しています。 このファイルはpackage.jsonファイルとともにパッケージのルートに置かれます。

ノードアドオンを構築するのに適したgypファイルは次のようになります。

{
  "targets": [
    {
      "target_name": "binding",
      "sources": [ "src/binding.cc" ]
    }
  ]
}

アドオンやgypファイルの作成に必要な追加リソース:

コマンド

node-gypは次のコマンドに応答します。

コマンド 説明
help ヘルプダイアログを表示します。
build make / msbuild.exeを呼び出し、ネイティブアドオンをビルドしmsbuild.exe
clean buildディレクトリが存在する場合は削除します。
configure 現在のプラットフォームのプロジェクトビルドファイルを生成します。
rebuild すべての行をcleanに実行し、 configurebuildconfigure
install 指定されたバージョンのノードヘッダーファイルをインストールします。
list 現在インストールされているノードヘッダーのバージョンを一覧表示します。
remove 指定されたバージョンのノードヘッダーファイルを削除します。

コマンドオプション

node-gypは次のコマンドオプションを受け入れます。

コマンド 説明
-jn 、– --jobs n makeを並行して実行する
--target=v6.2.1 ビルドするノードのバージョン(デフォルト= process.version)
--silly 、– --loglevel=silly すべての進捗状況をコンソールに記録する
--verbose 、– --loglevel=verbose ほとんどの進捗状況をコンソールに記録する
--silent 、– --loglevel=silent コンソールに何も記録しない
debug 、– debug デバッグビルドを作成する(デフォルト=リリース)
--release--no-debug --release --no-debug リリースビルドを作成する
-C $dir 、– --directory=$dir 別のディレクトリでコマンドを実行する
--make=$make オーバーライドmakeコマンド(例:gmake)
--thin=yes 薄い静的ライブラリを有効にする
--arch=$arch ターゲットアーキテクチャを設定する(例ia32)
--tarball=$path ローカルのtarballからヘッダーを取得する
--devdir=$path SDKダウンロードディレクトリ(デフォルト=〜/ .node-gyp)
--ensure 既に存在する場合はヘッダーを再インストールしないでください
--dist-url=$url カスタムURLからheader tarballをダウンロードする
--proxy=$url ヘッダtarballをダウンロードするためのHTTPプロキシを設定する
--cafile=$cafile デフォルトのCAチェーンを上書きする(tarballをダウンロードする)
--nodedir=$path ノードのソースコードへのパスを設定する
--python=$path Python(2)バイナリへのパスを設定する
--msvs_version=$version Visual Studioのバージョンを設定する(勝利)
--solution=$solution Visual Studioソリューションのバージョンを設定する(win)

構成

node-gypは環境変数またはnpm設定に応答します

  1. 環境変数は上記の任意のオプションのためにnpm_config_OPTION_NAMEの形式をnpm_config_OPTION_NAMEます(オプション名のダッシュはアンダースコアに置き換えてください)。 これらは、 node-gypが直接呼び出された場合にも機能しnode-gyp
    $ export npm_config_devdir=/tmp/.gyp
    またはWindows上で
    > set npm_config_devdir=c:\temp\.gyp
  2. npm構成では、変数はOPTION_NAMEの形式にOPTION_NAMEます。 この方法では、 node-gypnpmで実行された場合にのみ動作しnode-gyp
    $ npm config set [--global] devdir /tmp/.gyp
    $ npm i buffertools

ライセンス

(MITライセンス)

Copyright(c)2012 Nathan Rajlich < nathan@tootallnate.net >

本ソフトウェアおよび関連するドキュメンテーションファイル(以下「本ソフトウェア」といいます)のコピーを取得した者は、無制限で本ソフトウェアを使用、複製、変更、マージする権利を含むがこれに限定されない本ソフトウェアのコピーを発行、配布、サブライセンス許諾、および/または販売すること、および本ソフトウェアが提供されている人に、以下の条件に従うことを許可すること。

上記の著作権表示およびこの許可通知は、本ソフトウェアのすべてのコピーまたは実質的な部分に含まれるものとします。

本ソフトウェアは、商品性、特定の目的への適合性および非侵害性の保証を含むが、明示的または黙示的ないかなる保証もなく、現状のまま提供されます。 作者または著作権者は、いかなる場合も、本ソフトウェアまたはその使用に関連して発生したものであっても、その使用に起因するものであっても、契約違反、その他の損害賠償その他の損害賠償の責任は負わないものとします。ソフトウェア。







-nodejs
-, , , ,

執筆者: