Node.js native addon build tool

node-gyp jest wieloplatformowym narzędziem wiersza poleceń napisanym w Node.js do kompilacji rdzennych modułów addon dla Node.js, co zdejmuje ból radzenia sobie z różnymi różnicami w platformach budowania. Jest to zamiennik node-wafprogramu, który został usunięty dla node v0.8. Jeśli masz natywny dodatek dla węzła, który nadal ma plik wscript, to zdecydowanie powinieneś dodać plik binding.gyp w celu obsługi najnowszych wersji węzła.

Wielokrotne wersje docelowe węzła są obsługiwane (tj. 0.8, 0.9, 0.10, …, 1.0,itd.), niezależnie od tego, jaka wersja węzła jest faktycznie zainstalowana w systemie (node-gyp pobiera niezbędne pliki rozwojowe dla wersji docelowej).

Features:

  • Łatwy w użyciu, spójny interfejs
  • Te same polecenia do budowania modułu na każdej platformie
  • Obsługuje wiele docelowych wersji Node

Instalacja

Możesz zainstalować za pomocą npm:

$ npm install -g node-gyp

Będziesz także potrzebował zainstalować:

  • Na Unixie:
    • python (v2.7 zalecane, v3.x.x nie jest wspierane)
    • make
    • Prawidłowy toolchain kompilatora C/C++, jak GCC
  • Na Windowsie:
    • Python (v2.7.3 zalecany, v3.x.x nie jest obsługiwany)
    • Windows XP/Vista/7:
      • Microsoft Visual Studio C++ 2010 (wersja Express działa dobrze)
      • Do 64-bitowych kompilacji węzła i modułów natywnych potrzebny będzie również Windows 7 64-bit SDK
        • Jeśli instalacja się nie powiedzie, spróbuj najpierw odinstalować wszelkie C++ 2010 x64&x86 Redistributable, które masz zainstalowane.
      • Jeśli otrzymujesz błędy, że 64-bitowe kompilatory nie są zainstalowane, możesz również potrzebować aktualizacji kompilatora dla Windows SDK 7.1
    • Windows 7/8:
      • Microsoft Visual Studio C++ 2012 for Windows Desktop (wersja Express działa dobrze)

Zauważ, że OS X jest tylko odmianą Uniksa, więc potrzebuje python, make i C/C++.Łatwym sposobem na ich uzyskanie jest zainstalowanie XCode od Apple, a następnie użycie go do zainstalowania narzędzi wiersza poleceń (w Preferencje -> Pobrane).

Jak używać

Aby skompilować natywny dodatek, najpierw przejdź do jego katalogu głównego:

$ cd my_node_addon

Następnym krokiem jest wygenerowanie odpowiednich plików kompilacji projektu dla bieżącej platformy. Użyj configure do tego celu:

$ node-gyp configure

Uwaga: Krok configure szuka pliku binding.gyp w katalogu currentdirectory do przetworzenia. Zobacz poniżej instrukcje dotyczące tworzenia pliku binding.gyp.

Teraz będziesz miał albo plik Makefile (na platformach Unix), albo plik vcxproj (na Windows) w katalogu build/. Następnie wywołaj polecenie build:

$ node-gyp build

Teraz masz swój skompilowany plik .node bindings! Skompilowane wiązania kończą się w build/Debug/ lub build/Release/, w zależności od trybu budowania. W tym momencie możesz zażądać pliku .node z Node i uruchomić swoje testy!

Uwaga: Aby utworzyć kompilację Debug pliku wiązań, przekaż przełącznik --debug (lub-d) podczas uruchamiania polecenia configure lub build.

Plik „binding.gyp”

Poprzednio, gdy Node miał node-waf, musiałeś napisać plik wscript. Teraz zastąpił go plik binding.gyp, który opisuje konfigurację do zbudowania modułu w formacie JSON. Ten plik zostanie umieszczony w korzeniu twojego pakietu, obok pliku package.json.

Bezkompromisowy plik gyp odpowiedni do zbudowania dodatku do węzła wygląda tak:

{ "targets": } ]}

Kilka dodatkowych zasobów do pisania plików gyp:

  • „Hello World” przykład dodatku do węzła
  • dokumentacja użytkownika gyp
  • odniesienie do formatu wejściowego gyp
  • „binding.gyp” pliki out in the wild wiki page

Komendy

node-gyp odpowiada na następujące komendy:

.

Command Description
build Wywołuje make/msbuild.exe i buduje natywny addon
clean Usuwa wszelkie pliki build dir, jeśli istnieją
configure Generuje pliki budowania projektu dla bieżącej platformy
rebuild Uruchamia „clean”, „configure” i „build” wszystkie z rzędu
install Instaluje pliki nagłówkowe rozwoju węzła dla danej wersji
list Wykazuje aktualnie zainstalowane wersje plików rozwoju węzła
remove Usuwa pliki nagłówkowe rozwoju węzła dla podanej wersji

Licencja

(The MIT License)

Copyright (c) 2012 Nathan Rajlich <[email protected]>

Pozwala się niniejszym, bezpłatnie, każdej osobie, która uzyskała kopię niniejszego oprogramowania i związanych z nim plików dokumentacji („Oprogramowanie”), na nieograniczone korzystanie z Oprogramowania, w tym bez ograniczeń prawa do używania, kopiowania, modyfikowania, łączenia, publikowania, dystrybucji, udzielania sublicencji i/lub sprzedaży kopii Oprogramowania, oraz zezwalania na to osobom, którym Oprogramowanie zostało dostarczone, z zastrzeżeniem następujących warunków:

Powyższa nota o prawach autorskich oraz niniejsza nota o zezwoleniu powinny być dołączone do wszystkich kopii lub istotnych części Oprogramowania.

OPROGRAMOWANIE JEST DOSTARCZANE W STANIE, W JAKIM SIĘ ZNAJDUJE, BEZ GWARANCJI JAKIEGOKOLWIEK RODZAJU, WYRAŹNEJ LUB DOROZUMIANEJ, WŁĄCZAJĄC W TO, ALE NIE OGRANICZAJĄC SIĘ DO GWARANCJI PRZYDATNOŚCI HANDLOWEJ, PRZYDATNOŚCI DO OKREŚLONEGO CELU I NIENARUSZALNOŚCI. W ŻADNYM WYPADKU AUTORZY LUB POSIADACZE PRAW AUTORSKICH NIE PONOSZĄ ODPOWIEDZIALNOŚCI ZA JAKIEKOLWIEK ROSZCZENIA, SZKODY LUB INNĄ ODPOWIEDZIALNOŚĆ, CZY TO W RAMACH POWÓDZTWA UMOWNEGO, DELIKTOWEGO CZY INNEGO, WYNIKAJĄCĄ Z, Z LUB W ZWIĄZKU Z OPROGRAMOWANIEM LUB UŻYTKOWANIEM LUB INNYMI DZIAŁANIAMI ZWIĄZANYMI Z OPROGRAMOWANIEM.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.