Gids vir beginners in Node.js en NPM

Hoe om te begin met Node.js en die Node Package Manager

Vandag sal ek jou deur die heel basiese beginsels van Node.js en NPM lei, insluitend verduidelikings oor hoe om te ontwikkel vir die web in die algemeen. Net 'n nota vooraf: as jy vertroud is met basiese webontwikkeling en NPM, kan jy hierdie artikel oorslaan en meer oor die baie nuttige NPX hier leer.

Regso! Kom ons begin!

Node.js

As jy dit lees, het jy waarskynlik reeds Node.js + NPM afgelaai en begin om jou tone in die water van Javascript te kantel. Tog lyk die eerste stappe dalk al skrikwekkend: "Ek wil net 'n bietjie program in Javascript skryf, hoekom het ek al die ander goed nodig?". Dit is verstaanbaar, maar regtig glad nie 'n groot probleem nie.

Kom ons begin by die begin: Jy kan eenvoudig 'n Javascript-lêer oral op jou rekenaar skep, aangedui deur die '.js'-agtervoegsel. Hierdie lêer kan gevul word met kode op enige manier wat jy wil, maar dan is daar een ding wat ontbreek: hoe loop jy eintlik jou program? Dit is waar Node.js ter sprake kom.

Node.js is 'n runtime-omgewing, uitdruklik vir Javascript. Soos die beskrywing aandui, kan Node jou Javascript-kode laat loop in 'n spesifieke omgewing wat Node self verskaf. Die proses is altyd dieselfde: jy begin eers Node.js, en wanneer Node gespin is (wat beteken dit het klaar begin) kan jy jou Javascript-kode daarvoor verskaf.

Daar is twee maniere waarop jou Javascript as invoer aan Node verskaf kan word:

  1. Direk na die lopende Node-proses, reël vir reël, geen lêers ingesluit nie
  2. Deur vir Node te sê watter Javascript-lêer om te laai, sonder enige reël-vir-lyn-invoer
node

Reël vir reël

Nadat jy Node.js suksesvol geïnstalleer het (wat net besig is om af te laai + die installeerder te laat loop, beskrywings is op Node se webwerf), kan jy Node.js vanaf oral in jou terminaal (macOS/Linux) of PowerShell (Windows) begin. . Die opdrag lyk so.

Ja, dis al! Jy het pas Node suksesvol bekendgestel! Het jy opgelet hoe vinnig dit gebeur het? Een van die redes waarom Node.js so gewild is, is juis vanweë sy blitsvinnige opstart (onder andere).

Noudat Node aan die gang is, kan ons ons Javascript-toepassing reël vir reël definieer. Elke invoer word verwerk en in die geheue gestoor. Hier is 'n klein voorbeeld.

(Hit enter after every line end) 
const greet = (name) => console.log("Hello, " + name);
greet("Tom"); let x = 10; x = x + 5; 

(enter the following line to terminate node)
.exit

Dit is nou alles goed, maar om groter toepassings te skryf, vereis dat ons dit eers in lêers opstel voordat ons na Node toevoer. Volgende hoofstuk, asseblief!

Invoer via lêers

Vir hierdie voorbeeld benodig jy 'n teksredigeerder. Basies kan jy elke program gebruik wat teks kan manipuleer (soos TextEdit op macOS of Editor op Windows). Ek beveel die open source VS-kode van Microsoft aan, maar jy kan kies wat ook al die beste by jou ergonomie pas.

Om 'n lêer as invoer te verskaf, sal ons net een moet skep. Skep net 'n gewone tekslêer met die agtervoegsel 'js' in sy naam. Ons sal ons lêer app.js noem. Maak nou jou opdragprompt van jou keuse oop (die een wat in ons eerste voorbeeld gebruik word). Maak seker dat jy dit oopmaak vanaf die gids waar die lêer gestoor is, dit is belangrik.

As jy VS-kode gebruik, kan jy die ingeboude opdragprompt gebruik, net regskliek in jou Explorer-aansig en noem "Open in Code" (op Windows) of sleep-en-los die gids wat die lêer bevat op die VS-kode-ikoon in jou Dock (macOS). Dan kan jy sy terminaal oopmaak soos hier beskryf.

Wanneer die terminale gereed is, tik net die volgende opdrag in.

node app.js

Soos jy sien, het 'n paar dinge gebeur:

  1. Node het direk begin, met geen gebruikerinvoer beskikbaar nie
  2. Node het jou hele lêer van bo na onder laat loop totdat dit sy einde bereik
  3. Node self het beëindig, aangesien die einde van die lêer ook die einde van die proses was

En vir 'n basiese inleiding tot Node.js, dit is dit! Sodra jy Node afgelaai het en die eerste keer die gebruik van die opdragprompt ervaar het om jou eie Javascript-toepassing te begin, hetsy reël-vir-reël of vanaf 'n lêer, is jy amptelik 'n Javascript-ontwikkelaar! Welkom in die klub!

Ek sal jou nou deur die kernkonsep van NPM lei. Na die volgende hoofstuk sal ons vinnig kyk na die verband tussen Node.js, NPM en die webontwikkeling. As jy meer wil leer oor Node.js, kan jy ons stories oor Javascript, gereedskapkettings en alles wat met kodering verband hou hier kyk. Ek het ook 'n paar nuttige hulpbronne aan die einde van hierdie artikel gekoppel vir nog meer dinge om te leer.

Goed, kom ons skuif een!

NPM, die Node Pakket Bestuurder

Soos u gesien het, is dit nie so moeilik om u eie kode te bestuur nie. Die toepassing kan in 'n lêer gestoor word, veranderinge wat u toepas, bly net. Maar wat as jy iemand anders se kode wil gebruik, sê ’n kriptografiese of beeldmanipuleringsbiblioteek? Jy moet op een of ander manier daardie kode langs jou eie plaas, dit bruikbaar maak vir jou toepassing en alles hanteerbaar hou.

'n Naïewe benadering sou wees om net eksterne kode direk vanaf die bron af te laai, bv. Github, en kopieer die biblioteek, lêer vir lêer, na jou eie projek. Maar dit lei tot 'n paar probleme:

  • Hoe werk jy hierdie eksterne kode die beste op? Om met die hand te kopieer is nie die beste oplossing nie.
  • Hoe hou jy tred met al die kode wat ekstern is?
  • Wat as hierdie eksterne kode self staatmaak op biblioteke, wat nie in jou projek geïnstalleer is nie?

Al hierdie uitdagings word aangepak deur NPM, 'n pakketbestuurder vir Node.js. 'n Pakketbestuurder se taak is basies om vir jou 'n robuuste oplossing te gee oor hoe om eksterne kode by te voeg, tred te hou en te verwyder, ook bekend as afhanklikhede. Hier is 'n paar voorbeelde van NPM in aksie.

npm install serve-static npm remove serve-static

Natuurlik benodig hierdie bestuurder self 'n paar spesiale lêers om tred te hou met al die afhanklikhede in jou projek. Dit is hoekom toepassings wat NPM gebruik ten minste twee lêers het: package.json sowel as package-lock.json. U kan die volgende opdrag oproep om vinnig 'n nuwe NPM-pakket te skep.

npm init -y

Let wel: soos ons in die eerste deel van hierdie artikel gesien het, is NPM nie nodig om Node.js of Javascript te gebruik nie. Die fokus daarvan is om jou afhanklikhede te bestuur - nie meer nie, nie minder nie. Deur NPM kan jy kode aflaai wat by npmjs.com gepubliseer is. Al hierdie eksterne modules word in jou projek gestoor in 'n spesiale gids genaamd node_modules. Jy sal feitlik nooit hierdie gids hoef te verander nie, aangesien dit ten volle deur NPM bestuur word.

Die package.json gee jou insig in jou afhanklikhede wat tans in die projek gebruik word. package-lock.json is 'n spesiale lêer wat 'n paar metadata stoor oor mutasies rakende jou package.json-file of die node_modules-gids en kan vir eers geïgnoreer word.

Ek dink ek sal my beskrywing van die kernkonsep van NPM saamvat, wat dit doen en watter lêers/gidse dit outomaties genereer. Verdere inligting is aan die einde van die artikel gekoppel.

Arc to web dev

Mooi, jy ken nou die grondbeginsels van Node.js en NPM. Maar hoekom op aarde is al hierdie goed selfs nodig om te leer as jy net jou eie moderne webwerf wil begin skep?

Soos ons pas gesien het, stel NPM ons in staat om kode van 'n groot versameling biblioteke af te laai (die grootste wat bestaan, om presies te wees). Vir webontwikkeling het u 'n bediener nodig wat u webtoepassing kan huisves (dit wil sê, verskaf). Daar is baie dienste beskikbaar waar jy jou webwerf-projek kan oplaai en 'n bestaande infrastruktuur, insluitend bedieners, kan gebruik om die webwerf op die web beskikbaar te maak.

En vir plaaslike ontwikkeling word 'n bediener ook vereis om jou plaaslike lêers te laai en dit slegs aan jou beskikbaar te stel, op jou toestel, tydens ontwikkeling. Danksy Node.js kan jy dit net doen: maak jou webwerf plaaslik beskikbaar via 'n sogenaamde localhost. Node.js het die ingeboude gereedskap wat nodig is om 'n plaaslike bediener te begin, maar deur NPM kan u toepassing verryk word met stryd-getoetste komponente wat u kan help om baie groot dienste in 'n kort tydjie te skep.

Dit is natuurlik net die begin: NPM huisves soveel kode vir die bou van moderne webtoepassings (bekend as PWA, “progressiewe webtoepassing”) sowel as komplekse bedieners. Maar vir 'n eerste inleiding dink ek dat die verduideliking goed moet wees.

Ek hoop ek kon jou help om 'n greep op Node.js en NPM te kry. Eerste stappe is altyd die moeilikste, maar om deur die eerste dae van ontwikkeling en (baie) leer te byt, sal beloon word met jou vaardighede wat uitbrei na die ontwikkeling van moderne webtoepassings, wat jou in staat stel om gebou te word wat jy ook al wil.