JavaScript on helposti käytetyin kieli verkkosivustojen ja verkkosovellusten kehittämisessä. Resurssien lukumäärä on hämmästyttävä, ja vielä enemmän käytettävissä olevien kirjastojen määrä.
Aluksi näitä kirjastoja on vähän ja niitä on helppo ylläpitää; kuitenkin tarpeeksi pian riippuvuuden helvetti alkaa ja tarvitaan kypsempi ratkaisu.
Anna Node Package Manager (npm) - JavaScript-paketinhallinta, jota käytetään erityisesti yhdessä Node.js , vaikka sitä voidaan käyttää myös itsenäisesti. Se antaa sinulle poikkeuksellisen hallinnan projektisi riippuvuuksista ja tarjoaa erinomaisen tavan osallistua avoimen lähdekoodin maailmaan.
Voit aloittaa yksinkertaisesti suorittamalla npm install
ja pistämällä se JavaScript-tiedostoosi.
Haluatko asentaa tietyn version? Ei ongelmaa. Suorita npm install @1.2.3
.
Haluatko asentaa paketin maailmanlaajuisesti (kuten Mocha tai Angular-CLI)? Lisää vain -g
näin: npm install -g angular-cli mocha
.
Tosin useimmat käyttötapaukset pysähtyvät npm-asennuksessa, eikä mitään muuta tarvita. Npm: llä on kuitenkin runsaasti lisäominaisuuksia, jotka opastan sinut läpi korostamalla ne, joita pidän välttämättöminä, todella hyödyllisinä tai yksinkertaisesti mahtavina.
CLI on paikka, jossa käyttäjät viettävät suurimman osan ajastaan vuorovaikutuksessa npm: n kanssa, ja sen käyttöliittymä on todella hyödyllinen.
Apua kysyttäessä (npm help
) levittää koko joukon vaihtoehtoja, ja npm help-search
antaa sinulle luettelon hakutuloksista suoraan npm-merkinnästä.
Tässä ovat ydinkomennot, jotka erottuvat.
install
: Se mainitaan täällä, koska se on välttämätöntä työskenneltäessä npm: n kanssa. Käytetään joko uuden paketin asentamiseen paikallisesti tai maailmanlaajuisesti (kun lisätään -g
) tai asennetaan package.json
tiedosto (lisää siitä myöhemmin).
uninstall
: Tämä on myös välttämätöntä. Sitä käytetään tietyn paketin puhdistamiseen node_modules
hakemisto joko paikallisesti tai maailmanlaajuisesti (kun lisäät -g
).
access
: Tämä on npm-käyttöoikeuksien järjestelmänvalvojien leikkipaikka kontekstin npm-organisaatioissa ja laajennetuissa (yksityisissä) paketeissa. Vakavasti voimakkaita juttuja. Kun sitä käytetään yhdessä adduser
, owner
, team
jne. Kanssa, se antaa hienorakeisen hallinnan kenelle millä tahansa on pääsy.
bin
: Missä maan päällä paketit asennetaan? Suorita tämä komento nähdäksesi absoluuttisen tiedostopolun.
cache
: Jos aloitat pakettien asentamisen kohdasta npm vasemmalta, oikealta ja keskeltä, tämä komento on varsin hyödyllinen. Soita joko ls
alikomento nähdäksesi luettelon paikallisesti välimuistissa olevista paketeista tai clean
alikomento tyhjentää kaikki välimuistissa olevat paketit. Aikana, kun npm-rekisteri oli vielä hieman epävakaa, tämä oli välttämätöntä palata vakaaseen ympäristöön tai palauttaa asiat, kun et asettanut npm-käyttöoikeuksia oikein.
config
: Pääset myöhemmin eri määritysvaihtoehtoihin, mutta tämä komento käsittelee ensisijaisesti paikallisten tai globaalien asetustiedostojen pysyviä määritysominaisuuksia käyttämällä set
, get
tai delete
alikomennot.
dedupe
tai ddp
: Kun työskentelet projektin kanssa pitkään ja asennat paketteja suoraan npm: stä, tämä komento kulkee paikallisen pakettipuun läpi ja yrittää yksinkertaistaa riippuvuuksia.
link
: Kun kehität omaa npm-pakettia, tämän avulla voit luoda symbolisen linkin maailmanlaajuiseen kontekstiin, jotta se voidaan testata ikään kuin se olisi asennettu globaalisti npm-rekisteristä. Jos esimerkiksi kirjoitat kokoonpanotyökalua solmuun, johon CLI on asennettu maailmanlaajuisesti, voit suorittaa tämän komennon ja testata CLI: n käyttäytymistä tarvitsematta ottaa sitä ensin käyttöön.
ls
: Sitä käytetään visualisoimaan pakettiriippuvuudet ja niiden riippuvuudet puurakenteessa. On hienoa nähdä ja siitä on hyötyä myös vertailuissa muihin projekteihin.
outdated
: Tätä käytetään arvioimaan asennettujen riippuvuuksien nykyinen tila ja onko ne vanhentuneita. Projekteissa, joissa juuririippuvuusluettelo on satoja rivejä, pakettien manuaalinen tarkistus on lähes mahdotonta. Lisätään -g --depth=0
Tämän komennon avulla voit myös tarkistaa globaalisti asennetut paketit.
publish
: Tämä komento on välttämätön kehitettäessä omaa pakettia npm: lle. Se tekee juuri niin kuin nimestä voi päätellä; se julkaisee pakettisi npm-rekisterissä.
search
: Käytä tätä hakeaksesi rekisteristä kaikkia paketteja, jotka sisältävät kolmannessa argumentissa annetun tekstin.
shrinkwrap
: Lyhyesti sanottuna tämän komennon avulla voit lukita tietyt paketin riippuvuusversiot järjestyksessä niin, että rento semver ( semanttinen versiointi ) numero ei riko tuotantokoodia.
star
: Pidätkö todella käyttämästäsi paketista? Käytä tätä komentoa osoittamaan arvostuksesi suoraan päätelaitteelta, joka heijastuu sitten paketin sivulle npm-rekisterissä.
update
: Tämä seuraa yleensä outdated
komento päivittää vanhentuneet paketit.
version
: Tämä antaa sinulle lyhenteen package.json
version ominaisuus ja tee git-tunniste kaikki yhdessä.
Huomaa, että suurin osa näistä komennoista voi viedä alikomentoja ja / tai määrityksiä, eikä tämä luettelo ole missään nimessä lopullinen keskustelu CLI: stä.
Kokoonpano on pääosa npm: stä, ja konfigurointimuuttujia voidaan asettaa monella tapaa.
Ensinnäkin kokoonpano voidaan asettaa päätelaitteen CLI: n kautta.
Yleensä se näyttäisi tältä: npm -- []
.
Jos arvoa ei ole määritetty, asetukseksi asetetaan oletusarvoisesti tosi.
Oletetaan esimerkiksi, että työskentelet laajennetun (yksityisen) npm-paketin parissa ja päätät julkaista sen julkisena pakettina.
Tämä tehdään helposti liittämällä --access=public
omaan publish
komento. Jos emme määritä omaisuutta julkiseksi, oletusarvo on rajoitettu (yksityinen).
Muihin tällaisiin komentoihin liitetty kokoonpano ei jatku kaikkialla, joten voi olla työlästä asettaa joukko kokoonpanoja CLI: n kautta.
Tällöin voi olla parempi asettaa kokoonpano ympäristömuuttujien avulla.
Mikä tahansa ympäristömuuttuja, johon on asetettu npm_config_
etuliitettä käytetään määrittämään npm.
Esimerkiksi: export npm_config_registry=localhost:4321
asettaisi rekisterin kokoonpanovaihtoehdon maailmanlaajuisesti, ja kun npm suoritetaan, se käyttää npm-rekisteriä, joka sijaitsee localhostissa portissa 4321.
Voit myös määrittää kokoonpanovaihtoehtoja käyttämällä erityistä .npmrc
tiedosto, joka voidaan asettaa eri tasoille tarpeidesi mukaan:
package.json
tiedosto, yleensä path/to/project/.npmrc
~/.npmrc
$PREFIX/etc/npmrc
/path/to/npm/npmrc
.Kokoonpanoasetukset .npmrc
-kohdassa tiedostoa voidaan muokata ja jatkaa CLI: n avulla suorittamalla komento tässä muodossa: npm config set
.
Voit esimerkiksi suorittaa npm config set access public
tehdä laajennetun (yksityisen) paketin julkaisumääritykset jatkuvasti julkiseksi.
Oletuksena tämä komento säilyttää kokoonpanon paikallisesti (käyttäjätason kokoonpano yllä kuvatulla tavalla), mutta voit lisätä -g
jatkamaan sitä maailmanlaajuisesti.
Kun jatkuvan kokoonpanon on tapahduttava projektitasolla tai sisäänrakennetulla tasolla, .npmrc
tiedosto on muokattava tekstieditorilla.
Lopuksi kokoonpano voidaan asettaa package.json
tiedosto. Tätä käytetään kuitenkin harvoin (ja sitä tulisi käyttää vain nimenomaisesti vaadittaessa), koska projektitaso .npmrc
tiedosto on tavallisesti ensisijainen paikka asettaa paketin kokoonpano.
access
: Kuten yllä keskusteltiin, sitä käytetään käyttöoikeuksien asettamiseen.
always-auth
: On tärkeää huomata, että tämä asetus on oletusarvoisesti epätosi. Kun arvo on tosi, npm vaatii aina todennuksen ottaessaan yhteyttä rekisteriin.
ca
: Oletusarvo on npm-varmenteen myöntäjä (CA). Se voidaan muuttaa tyhjäksi sallimaan pääsyn vain tunnetuille rekisterinpitäjille tai tietylle varmentajan varmenteelle, joka antaa pääsyn vain tälle nimenomaiselle. Tämä asetus yhdessä cafile
, cert
ja strict-ssl
, käytetään harvoin, mutta ne puhuvat kohti npm: n turvallisuutta ja luotettavuutta, mikä antaa mielenrauhan tietäessäsi, että asentamasi paketti tulee odottamastasi lähteestä.
color
: Tämä on oletusarvoisesti tosi, mikä antaa sinulle tauon päätelaitteen normaalista tummuudesta värittämällä stdout
sen sallii tty-tiedostokuvaajat. Jos arvo on epätosi, pääte pysyy tylsänä. Kun se on asetettu always
, se tuottaa aina värillisiä värejä.
depth
: Tämä asetus mahdollistaa tarkan hallinnan siitä, mitä näet rekursiivisilla komennoilla, kuten ls
ja outdated
määrittämällä kuinka syvälle ne suoritetaan. Arvo 0 arvioi vain riippuvuuksien ensimmäisen tason, kun taas ääretön (oletus) aiheuttaa kaikkien riippuvuustasojen arvioinnin. Poikkeus tästä säännöstä on käytettäessä sitä outdated
; siinä tapauksessa ääretön tulkitaan 0: ksi, jotta varmistetaan osuvampi lähtö.
dev
: Tämä on oletusarvoisesti epätosi, mutta kun se on asetettu tosi (kun teet npm install
), kaikki package.json
tiedosto asennetaan normaalien riippuvuuksien mukana.
dry-run
: Kun tämä asetus on tosi, npm ei tee muutoksia pakettiin, vaan kertoo sen sijaan, mitä se olisi tehnyt. Tämä voi olla erittäin hyödyllistä suoritettaessa tiettyjä komentoja, kuten dedupe
tai update
.
git-tag-version
: Oletusarvo on tosi. Tämä asetus merkitsee version gitissä suoritettaessa npm version
komento. Jos käytät npm: tä paketinhallintaohjelmana suurelle projektille, joka on merkinnyt versiot git-tiedostoon, se voi säästää aikaa ja muista päivittää package.json
tiedosto sinulle.
loglevel
: Oletusasetuksena tämä on warn
, mikä antaa virheen ja varoituslähdön suoritettaessa npm-komentoja. Muita asetuksia ovat silent
, joka ei tuota lähtöä; error
, joka kirjaa virheet vain lähtöön; http
, joka ilmoittaa vain http-pyynnön virheistä; info
, jos haluat informatiivisen tuotoksen); verbose
, joka kirjaa melkein kaiken; ja silly
, joka, kuten nimestä voi päätellä, tuottaa typerän määrän tuotosta ja sitten jonkin verran.
production
: Kun tämä on tosi, npm toimii vastaavasti ja suorittaa kaikki komennot tuotantotilassa. Tämä tarkoittaa, että kehitys- tai valinnaisia riippuvuuksia ei asenneta eikä kehitykseen liittyviä tehtäviä suoriteta.
rollback
: Kun asetus on tosi, kaikki epäonnistuneet asennukset poistetaan. Tämä on kätevää, kun riippuvuuksien asennus epäonnistuu. Kirjaustason mukaan sinun pitäisi pystyä näkemään epäonnistuneet asennukset, merkitsemään ne muistiin ja suorittamaan npm install
komento palautusasetuksen ollessa tosi. Sitten voit tehdä virheenkorjauksen muistiinpanojesi ja kuivakäynnistyksen avulla (kuten yllä on kuvattu).
tallenna : When installing a package directly from the registry, you can append
–tallenna to the command which will add the installed package to the dependencies option in the
package.json file. For example,
npm asenna lodash` lisää lodashin riippuvuuksiisi.
save-dev
: Lisää samalla tavalla kuin tallennusmääritysvaihtoehto --save-dev
asennettaessa pakettia, ja se lisätään sitten devDependencies-vaihtoehtoon package.json
tiedosto.
save-optional
: Lisää samalla tavalla kuin tallennusmääritysvaihtoehto --save-optional
asennettaessa pakettia, ja se lisätään sitten package.json
-valinnassa optionDependencies tiedosto.
save-exact
: Asennettaessa paketteja, save
, save-dev
ja save-optional
Vaihtoehdot muuttavat package.json
tiedosto lisäämällä asennettu paketti vastaavaan ominaisuuteensa semver range operaattorin kanssa. Käynnistettäessä 'save-tarkka' kokoonpanoasetusta tosi-arvolla yhdessä jonkin edellä mainitun asetuksen kanssa käytetään tiettyä versionumeroa ohittaen puolijalan alueen.
save-prefix
: Tämä asettaa puolivälin operaattorin käytettäessä save
, save-dev
tai save-optional
. Oletusarvo on ^
, jolloin pakettien pienet päivitykset tapahtuvat asennuksen yhteydessä. Tämä voidaan asettaa mille tahansa kelvolliselle etuliitetylle puolivälin operaattorille.
tag-version-prefix
: Tavanomainen oletusarvo on v
, mikä määrittää, mikä on valmiiksi liitetty git-tunnisteeseen suoritettaessa npm version
Voit päivittää itsensä myös npm: llä.
Suorita vain npm install -g [email protected]
, ja npm päivitetään uusimpaan vakaan julkaisun versioon. On tärkeää huomata, että jokainen version Node.js toimitetaan tietyllä versiolla npm, ja kokemukseni mukaan sinun ei pidä sekaantua siihen pariliitokseen liikaa.
Päivän lopussa suosittelen, että pidän kiinni pariliitoksesta niiden tarkoituksen mukaisesti.
Kun käytät npm: tä itsenäisenä työkaluna, varmista, että ymmärrät valitsemasi version käytön seuraukset. On erinomainen työkalu erilaisten Node.js-versioiden (ja puolestaan npm-versioiden) hallintaan samassa järjestelmässä nvm .
package.json
tiedosto on tärkeä elementti, joka yhdistää kaiken yhteen.
Se edellyttää paketin julkaisemista npm-rekisteriin, ja riippuvuuksien hallintaosa herää eloon.
Siinä on kaksi pakollista kenttää, nimeltään 'nimi' ja 'versio', ja näiden ominaisuuksien tulisi yhdessä olla yksilöivä tunniste.
Nimikentän on noudatettava tiettyjä sääntöjä, jotka on määritelty npm dokumentaatio nimeämisestä , ja version kenttä on semver-spesifikaatiot .
Tämän lisäksi sinulla voi olla mailin pituinen luettelo riippuvuuksista ja määritellä kullekin niistä tietty versio käytettäväksi puoliversioiden ja alueoperaattoreiden avulla. Tässä on luettelo muista merkittävistä ominaisuuksista.
“Main” määrittelee sovelluksen aloituskohdan, jonka oletusarvo on index.js
. Sopimuksesta tai kehyksestäsi riippuen se voi olla app.js
tai main.js
. Voit tietysti tehdä siitä mitä haluat.
Tämä on aliarvioitu ominaisuus.
Ensinnäkin sitä voidaan käyttää asioiden tekemiseen esijulkaisussa.
Toiseksi, se tarjoaa paikan, jossa voit käyttää aliaksen joukkoa usein käytettyjä komentoja, aina rakentamistehtävistä (määritelty kultaukseksi tai murinaksi), käynnistää muiden riippuvuuksien asennuksen (esimerkiksi bowerilla), kehityspalvelimen käynnistämisen webpackilla tai suoritetaan joukko bash-komentoja.
Tämä ominaisuus on luettelo sovelluksesi tarvitsemista paketeista sekä yhteensopiva semver-numero. Se on merkittävä ominaisuus, koska sitä voidaan muokata terminaalista, kun asennat paikallisia paketteja.
Tämä tehdään lisäämällä --save
(tai lyhenne -S
) npm install
: n lopussa komento.
Kun teet tämän, uudet asennetut paketit lisätään package.json
-tietokoneesi riippuvuusluetteloon tiedosto.
Vastaavasti riippuvuus voidaan poistaa myös lisäämällä --save
suoritettaessa npm uninstall
komento.
On tärkeää olla tietoinen jokaisen riippuvuuden puoliversioista ja niiden merkityksestä.
Jos semver-sääntö on liian tiukka, menetät uusia ominaisuuksia ja parannuksia, kun taas semver-sääntö on liian rento, paketin rikkova versio voidaan asentaa linjalle.
Rikkoutuneen paketin asennus voi osoittautua melko vaikeaksi ratkaista, varsinkin kun paketin pienennettyä versiota käytetään.
Erillään riippuvuusominaisuudesta, devDependencies-ominaisuuden avulla voit määrittää riippuvuuksia, joita käytetään vain kehitysvaiheessa ja joita ei tarvita tuotantorakennukseen (kuten ESLint, grunt-contrib -paketit ja Protractor). Aivan kuten riippuvuuksien kohdalla, tätä ominaisuutta voidaan muokata päätelaitteesta lisäämällä --save-dev
(tai lyhenne -D
) npm install
: n loppuun komento tai npm uninstall
komento. Sama varoitus koskee versioita, jotka mainitaan riippuvuuksien alla.
Tässä voit määrittää pakettisi suoritettavat tiedostot, kuten polun CLI-apuohjelmaan. Tämä ominaisuus käskee npm: tä luomaan paikalliset tai globaalit symlinkit suoritettaviin tiedostoihin, kun paketti on asennettu.
Kuten aiemmin keskusteltiin, tässä määritetään kokoonpanoasetukset package.json
tiedosto.
Kun arvo on tosi, npm kieltäytyy julkaisemasta pakettia.
Tätä ei pidä sekoittaa pääsykokoonpanon asetukseen.
Tämä on kätevä asetus, kun sinulla on projekti, joka käyttää npm yhdessä sen package.json
mutta sitä ei ole tarkoitus julkaista npm-rekisterissä, joko kattavalla tai julkisella.
Jos aikomuksesi muuttuu, muuta asetukseksi epätosi, ja voit julkaista pakettisi.
package.json
tiedosto hyväksyy myös mukautetut ominaisuudet, kunhan nimeä ei ole jo määritelty tai varattu.
Npm-ekosysteemi on täynnä paketteja, jotka ovat kirjoittaneet tuhannet kehittäjät ympäri maailmaa. Jokainen ratkaisee jonkinlaisen ongelman, antaa abstraktin tai esittää jonkin toteutuksen.
Mahdollisuudet ovat, että joskus sinäkin haluat kehittää oman pakettisi jakamista varten.
Ensin sinun on kirjoitettava package.json
tiedosto, jolla on vähimmäisvaatimukset 'nimi' ja 'versio', ja sitten 'pää' -ominaisuus, jolla määritetään alkupiste, esimerkiksi index.js.
Kirjoita koodisi index.js-tiedostoon, kirjaudu sisään npm-käyttäjätililläsi tai luo uusi käyttäjä päätelaitteesta, ja olet valmis julkaisemaan sen npm-rekisterissä.
Paketit voivat olla julkisia tai yksityisiä.
Julkisia paketteja on vapaasti julkaista ja ne ovat kaikkien käytettävissä.
Yksityisiä paketteja, joita kutsutaan laajennetuiksi paketeiksi, voidaan julkaista vain, jos maksat yksityisten moduulien käyttäjälle, ja ne voidaan tunnistaa erillisistä @username/
joka on valmiiksi paketin nimeen.
Laajennetut paketit voidaan julkaista myös julkisesti soittamalla publish
komento --access=public
.
Lisäksi, jos vietät vielä enemmän aikaa pakettisi koodipohjan laajentamiseen ja parantamiseen, ja on aika julkaista uusi versio, muutat yksinkertaisesti paketin versiota (semver-sääntöjen ja käytännön mukaisesti) package.json
tiedosto ja kirjoita npm publish
.
Voit myös käyttää komentoriviliitäntää ja kutsua npm version
, jossa update_type on joko patch
, minor
tai major
, kuten semver kuvaa, ja tämä lisää sitten automaattisesti version numero kohdassa package.json
tiedosto.
Jälleen npm dokumentaatio sillä tämä on erinomaista, ja olisi turhaa vain toistaa heidän sanansa.
Organisaatioista voidaan sanoa, että organisaatiot ovat erittäin hienojakoisia, ja kun niitä hallitaan oikein, suuria tiimejä ja henkilöitä, jotka työskentelevät kattavien tai julkisten pakettien parissa yhden nimen alla, voidaan hallita ja rajoittaa hyvin.
Vaikka hallitseminen on monimutkaista, se on erittäin palkitsevaa.
Viime kädessä npm: n tarjoama dokumentaatio on kattava, ja siitä on käytävä läpi yksityiskohdat, mutta tässä artikkelissa on hyödyllinen yleiskatsaus sekä perus- että edistyneemmistä, mukana olevista toiminnoista, mikä välittää npm: n mahtavuuden.
Kuten kaikissa asioissa, on vahvoja mielipiteitä ja löytyy monia vikoja. Mutta jos et ole koskaan kokeillut npm: ää (tai solmua), sukeltaa sisään ja tutkia sitä itse. Mahdollisuudet ovat, että nautit siitä enemmän kuin luulet.
Saat mielenkiintoisempia artikkeleita npm: stä lukemalla Scala.js: n käyttäminen npm: n ja Browserify: n kanssa .