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.7zalecane,v3.x.xnie jest wspierane) make- Prawidłowy toolchain kompilatora C/C++, jak GCC
-
- Na Windowsie:
- Python (
v2.7.3zalecany,v3.x.xnie 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)
- Python (
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.