nodejs / node-gyp
node-gyp
on Node.js:llä kirjoitettu komentorivityökalu, jolla voidaan kääntää natiivit lisämoduulit Node.js:lle. Se sisältää myydyn kopiongyp-next-projektista, jota Chromium-tiimi käytti aiemmin ja jota on laajennettu tukemaan Node.js:n natiivien lisäosien kehittämistä.
Huomaa, että node-gyp
:aa ei käytetä itse Node.js:n rakentamiseen.
Tukee useita Node.js:n kohdeversioita (esim. 0.8
, …, 4
, 5
, 6
,jne.) riippumatta siitä, mikä Node.js:n versio on todellisuudessa asennettu järjestelmääsi(node-gyp
lataa kohdeversiota varten tarvittavat kehitystiedostot tai otsikot).
Ominaisuudet
- Samat build-komennot toimivat millä tahansa tuetuista alustoista
- Tukee Node.js:n eri versioiden kohdentamista.js
Asennus
Voit asentaa node-gyp
käyttämällä npm
:
npm install -g node-gyp
Käyttöjärjestelmästäsi riippuen sinun on asennettava:
Unixilla
- Python v3.6, v3.7, v3.8 tai v3.9
make
- Kunnollinen C/C++-kääntäjätyökaluketju, kuten GCC
MacOS:ssä
Huomautus: Jos Mac-tietokoneesi on päivitetty macOS Catalinaan (10.15, lue macOS_Catalina.md.
- Python v3.6, v3.7, v3.8 tai v3.9
- Xcode
- Sinun täytyy myös asentaa
XCode Command Line Tools
ajamallaxcode-select --install
. Vaihtoehtoisesti, jos sinulla on jo koko Xcode asennettuna, löydät ne valikostaXcode -> Open Developer Tool -> More Developer Tools...
. Tämä vaihe asentaaclang
,clang++
jamake
.
- Sinun täytyy myös asentaa
Windowsissa
Asenna Pythonin tämänhetkinen versio Microsoft Storen paketista.
Asenna työkalut ja konfiguraatio manuaalisesti:
- Asenna Visual C++ Build Environment: Visual Studio Build Tools (käyttäen ”Visual C++ build tools” -työkaluja) tai Visual Studio 2017 Community (käyttäen ”Desktop development with C++” -työkaluja)
- Käynnistä cmd,
npm config set msvs_version 2017
Jos edellä mainitut vaiheet eivät toimineet sinulle, saat lisävinkkejä Microsoftin Node.js Guidelines for Windows -ohjeista.
Kohdistaaksesi natiivin ARM64 Node.js:n Windows 10:ssä ARM:llä, lisää komponentit ”Visual C++ compilers and libraries for ARM64” ja ”Visual C++ ATL for ARM64”.
Python-riippuvuuden konfigurointi
node-gyp
edellyttää, että olet asentanut yhteensopivan Python-version, jommankumman seuraavista vaihtoehdoista: V3.6, V3.7,V3.8 tai V3.9. Jos sinulla on asennettuna useita Python-versioita, voit määrittää, mitä Python-versiota node-gyp
tulee käyttää jollakin seuraavista tavoista:
- asettamalla komentorivioptiolla
--python
, esim.:
node-gyp <command> --python /path/to/executable/python
- Jos
node-gyp
kutsutaannpm
:n kautta ja sinulla on asennettuna useitaPython-versioita, voit asettaanpm
:n ’python’-konfiguraatioavaimen sopivaanarvoon:
npm config set python /path/to/executable/python
-
Jos ympäristömuuttuja
PYTHON
on asetettu Pythonin suoritettavan tiedoston polkuun,käytetään kyseistä versiota, jos se on yhteensopiva versio. -
Jos
NODE_GYP_FORCE_PYTHON
-ympäristömuuttuja on asetettuPythonin suoritettavan tiedoston poluksi, sitä käytetään muiden määritettyjen tai sisäänrakennettujen Python-hakupolkujen sijasta. Jos kyse ei ole yhteensopivasta versiosta, jatkohakua ei tehdä.
Kuinka käyttää
Kääntääksesi natiivin lisäosan, siirry ensin sen juurihakemistoon:
cd my_node_addon
Seuraavana askeleena luodaan projektin rakentamistiedostot nykyiselleplatformille. Käytä siihen configure
:
node-gyp configure
Automaattinen tunnistus ei onnistu Visual C++ Build Tools 2015:ssä, joten --msvs_version=2015
on lisättävä (ei tarvita, kun sitä ajetaan npm:llä edellä määritetyllä tavalla):
node-gyp configure --msvs_version=2015
Huomautus: Vaiheessa configure
etsitään nykyisessä hakemistossa olevaa binding.gyp
-tiedostoa prosessoitavaksi. Katso alla olevat ohjeet binding.gyp
-tiedoston luomiseen.
Nyt sinulla on joko Makefile
(Unix-alustoilla) tai vcxproj
-tiedosto (Windowsissa) build/
-hakemistossa. Seuraavaksi kutsu komento build
:
node-gyp build
Nyt sinulla on käännetty .node
sidostiedosto! Käännetyt sidostiedostot päätyvät tiedostoon build/Debug/
tai build/Release/
, riippuen rakennustilasta. Tässä vaiheessa voit vaatia .node
-tiedostoa Node.js:llä ja suorittaa testisi!
Huomautus: Jos haluat luoda sidostiedostosta Debug-rakentamisen, välitä --debug
(tai-d
) -kytkin suorittaessasi joko configure
-, build
– tai rebuild
-käskyjä.
Tiedosto sitoumus.gyp
Tiedostossa binding.gyp
kuvaillaan konfiguraatio moduulisi rakentamista varten JSON:ien kaltaisessa muodossa. Tämä tiedosto sijoitetaan pakettisi juureen, yhdessäpackage.json
kanssa.
Node.js-lisäosan rakentamiseen sopiva pelkistetty gyp
tiedosto voisi näyttää seuraavalta:
{ "targets": } ]}
Lisälukemista
Joitakin lisäresursseja Node.js:n natiivien lisäosien ja gyp
konfiguraatiotiedostojen kirjoittamiseen:
- ”Going Native” a nodeschool.io tutorial
- ”Hello World” node-lisäosan esimerkki
- gyp-käyttäjän dokumentaatio
- gyp-syöttöformaatin referenssi
- ”binding.gyp”-tiedostojen out in the wild wiki-sivu
Komennot
node-gyp
vastaa seuraaviin komentoihin:
Komento | Kuvaus |
---|---|
help |
Näyttää ohjeikkunan |
build |
Kutsuu make /msbuild.exe ja rakentaa natiivin. lisäosan |
clean |
Poistaa build -hakemiston, jos se on olemassa |
configure |
Generoi projektin rakennustiedostot nykyistä alustaa varten |
rebuild |
Suorittaa clean , configure ja build kaikki peräkkäin |
install |
Asenntaa Node.js:n otsikkotiedostot annetulle versiolle |
list |
Luettelee tällä hetkellä asennetut Node.js:n otsikkotiedostojen versiot |
remove |
Poistaa Node.js-otsikkotiedostot annetulle versiolle |
Komentoasetukset
node-gyp
hyväksyy seuraavat komentoasetukset:
Komento | Kuvaus |
---|---|
-j n , --jobs n |
Suorita make rinnakkain. Arvo max käyttää kaikkia käytettävissä olevia suorittimen ytimiä |
--target=v6.2.1 |
Node.js-versio, jolle rakennetaan (oletusarvo on process.version ) |
--silly , --loglevel=silly |
Loggaa kaikki edistyminen konsoliin |
--verbose , --loglevel=verbose |
Loggaa suurimman osan edistymisestä konsoliin |
--silent , --loglevel=silent |
Ei mitään konsoliin |
debug , --debug |
Tee Debug build (oletusarvo on Release ) |
--release , --no-debug |
Tee Release build |
-C $dir , --directory=$dir |
Komennon suorittaminen eri hakemistossa |
--make=$make |
Komennon make ohittaminen (esim.esim. gmake ) |
--thin=yes |
Ohjien staattisten kirjastojen käyttöönotto |
--arch=$arch |
Kohdearkkitehtuurin asettaminen (esim. ia32) |
--tarball=$path |
Hakea otsikot paikallisesta tarballista |
--devdir=$path |
SDK:n lataushakemisto (oletusarvo on käyttöjärjestelmän välimuistihakemisto) |
--ensure |
Ei asenna otsikoita uudelleen, jos ne ovat jo olemassa |
--dist-url=$url |
Lataa otsikkotarball mukautetusta URL-osoitteesta |
--proxy=$url |
Asettaa HTTP(S)-välityspalvelimen otsikkotarballin lataamista varten |
--noproxy=$urls |
Asettaa urlit sivuuttamaan välityspalvelimet otsikkotarballia ladattaessa |
--cafile=$cafile |
Käytön ohitus. default CA chain (to download tarball) |
--nodedir=$path |
Asettaa polun solmun lähdekoodiin |
--python=$path |
Asettaa polun Python-binääritiedostoon |
--msvs_version=$version |
Visual Studion version asettaminen (vain Windowsissa) |
--solution=$solution |
Set Visual Studio Solution version (vain Windows) |
Konfiguraatio
Ympäristömuuttujat
Käyttäkää muotoa npm_config_OPTION_NAME
minkä tahansa edellä luetellun komennon vaihtoehdon kohdalla (vaihtoehdon nimissä olevat katkoviivat on korvattava alleviivausmerkillä).
Voit esimerkiksi asettaa devdir
arvoksi /tmp/.gyp
seuraavasti:
Suorita tämä Unixissa:
export npm_config_devdir=/tmp/.gyp
Vai tämä Windowsissa:
set npm_config_devdir=c:\temp\.gyp
npm-konfiguraatio
Käytä muotoa OPTION_NAME
mille tahansa edellä luetelluille komento-optioille.
Jos haluat esimerkiksi asettaa devdir
yhtä suureksi kuin /tmp/.gyp
, suoritat:
npm config set devdir /tmp/.gyp
Huomautus: npm
:n kautta asetettuja konfiguraatioita käytetään vain silloin, kun node-gyp
ajetaan npm
:n kautta, ei silloin, kun node-gyp
ajetaan suoraan.
Lisenssi
node-gyp
:n käyttöoikeus on MIT-lisenssi. Katso lisätietoja LICENSE-tiedostosta.
Leave a Reply