nodejs / node-gyp

Build Status

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 ajamalla xcode-select --install. Vaihtoehtoisesti, jos sinulla on jo koko Xcode asennettuna, löydät ne valikosta Xcode -> Open Developer Tool -> More Developer Tools.... Tämä vaihe asentaa clang, clang++ ja make.

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:

  1. asettamalla komentorivioptiolla --python, esim.:
node-gyp <command> --python /path/to/executable/python
  1. Jos node-gyp kutsutaan npm:n kautta ja sinulla on asennettuna useitaPython-versioita, voit asettaa npm:n ’python’-konfiguraatioavaimen sopivaanarvoon:

npm config set python /path/to/executable/python
  1. Jos ympäristömuuttuja PYTHON on asetettu Pythonin suoritettavan tiedoston polkuun,käytetään kyseistä versiota, jos se on yhteensopiva versio.

  2. 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