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 Toolsajamallaxcode-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-gypkutsutaannpm: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
PYTHONon 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=2015on 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.gypkuvaillaan 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