Boost JavaScript-produktiviteten: 19 essensielle Node.js-pakker

Bruker du mye tid på å skrive JavaScript-kode? Fortsett å lese for å oppdage de forskjellige Node.js-pakkene som kan gjøre livet til en JavaScript-utvikler mer produktivt og enklere.

JavaScript er et synkront, enkelttrådet språk, som er det mest brukte programmeringsspråket for programvare- og applikasjonsutvikling. Mange rammeverk som Reactjs, Angularjs, Vuejs, Expressjs og Node.js er bygget med JavaScript som grunnspråk.

Mange utviklere støter på utfordringer når de koder i JavaScript, på grunn av forskjellige komplekse konsepter som løfter, hendelsesløkker, tilbakekall, hoisting, closures osv.

For å forenkle utviklingen i JavaScript, finnes det en rekke Node.js-pakker som hjelper med feilhåndtering, kodeformatering, sletting av filer, feilsøking av kode, sikring av sikkerhet og mer. Noen tilbyr også interaktive kommandolinjegrensesnitt for bedre visualisering av CPU-kraft, prosessorkapasitet og alvorlighetsgraden av feil.

Retire.js

Retire.js er et JavaScript-bibliotek som gir en oversikt over sårbarheter knyttet til forskjellige versjoner av JavaScript-biblioteker.

Det kan brukes som en Chrome-utvidelse, Firefox-utvidelse, kommandolinjeskanner, Grunt-plugin osv. Det installeres med følgende kommando:

$ npm install -g retire

Retire.js har forskjellige kommandoer for å skanne JavaScript- og nodefiler. Det skanner JavaScript-nettsider og registrerer advarsler i utviklerkonsollen. Retire.js genererer utgangskode 13 når sårbarheter oppdages. Gulp-oppgaven skanner automatisk filer og rapporterer sårbarhetene.

Np

Np er en JavaScript-pakke som tilbyr en rekke funksjoner som kodeopprydding, installasjon av avhengigheter, publisering av pakker og tagging. Den sikrer at koden skyves til hovedgrenen og gir et interaktivt brukergrensesnitt.

Tofaktorautentisering benyttes for å sikre nye depoter. Den forsikrer seg om at arbeidet foregår med nyeste versjon ved å installere avhengigheter på nytt. Den nyeste versjonen publiseres til npm. Den kan installeres med følgende kommando:

$ npm install --global np

Dens ulike funksjoner inkluderer publisering av kode fra en hvilken som helst gren, opprettelse av underkataloger for publisering, hoppe over kodeopprydding og testing osv. Konfigurasjonen av np kan gjøres globalt og lokalt ved hjelp av CLI-flagg i konfigurasjonsfilene til np, som np-config.js og np-config.json.

ESLint

ESLint er et JavaScript-pakke-verktøy som analyserer JavaScript-kode og identifiserer mønstre i ECMA/JavaScript-kode. Den evaluerer mønstre i kode ved bruk av AST. Alle reglene for verktøyet er definert som plugins og kan legges til dynamisk under kjøring. ESLint installeres ved hjelp av kommandoen nedenfor:

$ npm init @eslint/config

Etter installasjon ved hjelp av kommandoen ovenfor, genereres en .eslintrc-fil med et sett regler med feildefinisjoner og tilhørende forhold. ESLint lar alle avhengigheter defineres i brukerens .lock-fil og benytter ikke en egen .lock-fil. Det er også svært sikkert.

Shelljs

Shelljs er et miljø der UNIX-kommandoer kan utføres på alle operativsystemer via Node.js API. Shelljs er portabelt og støtter også tredjeparts plugins. Ulike kommandoer som kan brukes inkluderer echo, exec, chmod, pushd, popd, cd, cat osv. Følgende kommando kan benyttes for å installere Shelljs.

$ npm install [-g] shelljs

Det har blitt testet i forskjellige prosjekter som Firefox, JSHint, ESLint, Zepto osv. Lokal import av Shelljs-pakker foretrekkes fremfor global import. Det kan også konfigureres som stille, dødelig, detaljert osv.

Omelett

Omelett tilbyr en mal for autofullføring av kode for Node- og Deno-prosjekter. Den bruker et svært enkelt API og støtter også Async API og Tree API. Et eksempel på en kodebit for implementering av Omelett vises nedenfor:

import * as omelette from 'omelette';

const firstArgument = ({ reply }) => {
  reply([ 'beautiful', 'cruel', 'far' ])
}

const planet = ({ reply }) => {
  reply([ 'world', 'mars', 'pluto' ])
}

omelette`hello|hi ${firstArgument} ${planet}`.init()

Etter import av Omelett, må et Omelett-objekt opprettes. Deretter kan ulike funksjoner for kode-autofullføring, som setupShellInitFile() for oppsett og cleanupShellInitFile() for opprydding, kalles på omelettobjektet for kode-autofullføring. Det støtter også bruk av Lambda-funksjoner for å lage komplekse mal-APIer.

Prettier

Prettier brukes til å formatere kode. Det bidrar til å gi tabulatoravstander, holde oversikt over maksimalt innhold per linje og sikrer riktig innrykk i betingede setninger og løkker. Det konverterer kode til et ryddig og lesbart format. For eksempel:

Kodebiten nedenfor:

foo(reallyLongArg(), omgSoManyParameters(), IShouldRefactorThis(), isThereSeriouslyAnotherOne());

Konverteres til det nedenfor når Prettier-utvidelsen brukes:

foo(
  reallyLongArg(),
  omgSoManyParameters(),
  IShouldRefactorThis(),
  isThereSeriouslyAnotherOne()
);

Den kan kjøres i CI-miljøer, integrerte utviklingsmiljøer (IDE) osv.

jscpd

jscpd er en tjeneste for håndtering av teknisk gjeld. Det er en JavaScript-pakke som hjelper deg å finne dupliserte kodebiter i ulike kodebaser og digitale dokumenter. Den bruker en strengmatchingsalgoritme som heter Rabin-Karp for å finne kodedupliseringer.

jscpd/core har evnen til å oppdage kodeduplisering i ulike miljøer, og jspd/tokenizer brukes for å dele opp kildekoden i tokens. I tillegg finnes mange andre pakker, som html-reporter, badge-reporter og leveldb-store. Kommandoen for å installere jscpd er:

$ npm install -g jscpd

jscpd brukes av GitHub Super Linter, Code-Inspector, Mega-Linter, Codacy osv. Hver av dem bruker jscpd til forskjellige formål, inkludert naturlig språkbehandling, linjeaggregatorene og kodeanalyse.

Vtop

Vtop er en skjerm som gir en grafisk fremstilling av kommandolinjeaktivitet. Den gir informasjon om CPU-bruk ved å analysere de ulike trådene og prosessene som kjører, og representerer dem grafisk gjennom diagrammer, topper osv. Den er utviklet med JavaScript, Makefile og Shell. Kommandoen for å installere Vtop er:

$ npm install -g vtop

Ulike temaer og fargekoder kan brukes for å gjøre GUI mer tiltalende etter behov. Forskjellige tastatursnarveier som «u» for oppdatering, «g» for å gå til toppen av listen, «G» for å flytte til slutten av listen og «dd» for å avslutte prosesser tilhørende en bestemt gruppe, kan brukes.

Standardjs

Standardjs er et JavaScript-bibliotek som automatiserer filkonfigurasjon, formaterer kode og raskt finner problemer med unntakshåndtering fra programmerere. Kommandoen for å installere Standardjs er gitt nedenfor:

$ npm install standard --global

Etter installasjon kan du kjøre den over en fil/kodebit ved å bruke kommandoen «standard» i kommandolinjegrensesnittet. Alle avhengigheter til Standardjs kan legges til ved å definere «standard: «*»» i avhengighetsobjektet til package.json-filen.

Det kan også installeres som et plugin for ulike tekstredigerere som Visual Studio Code, Sublime Text, Atom, Vim og Brackets osv. Node.js, Expressjs, npm, Brave og GoDaddy benytter Standardjs for å møte sine forretningsbehov.

NodeJsScan

NodeJsScan er en statisk sikkerhetskodeskanner for Node.js-applikasjoner. Den informerer om sikkerhetsstatusen til en applikasjon via et interaktivt brukergrensesnitt. Den kan integreres med ulike applikasjoner som Slack for varsler/meldinger, e-postvarsler ved å konfigurere SMTP-innstillinger i settings.py-filen til NodeJsScan, CI/CD-pipeline osv. Den hjelper også med å bygge docker-bilder.

Den logger feil, informasjon og advarselsmeldinger. En detaljert beskrivelse av feilen, som årsaken til dens forekomst, alvorlighetsgraden, linjenumrene der feilene oppstod, antall skannede filer og problemer som ble funnet, presenteres. Grafer og diagrammer plottes også for bedre lesbarhet og analyse.

Søppel

Trash er et JavaScript-bibliotek som flytter slettede filer til papirkurven i stedet for å slette dem permanent. Det støtter Mac, Linux og Windows. Kommandoen som brukes for å installere Trash er:

$ npm install trash

Trash er et API som tar inn data og alternativer som funksjonsparametere når trash()-funksjonen kalles. Dataene kan være en streng eller en strengmatrise. Alternativer kan være et objekt. Trash-funksjonen returnerer et løfte. Ulike kommandoer benyttes i forskjellige operativsystemer. macOS-trash brukes i MacOs, XDG Spec i Linux og papirkurven i Windows.

Xo

Xo er en JavaScript- og TypeScript-wrapper som bruker ESLint under overflaten. Den hjelper til med å lage lesbar kode ved å gi kode innrykk, legge til semikolon, enkle anførselstegn og kommaer der det er nødvendig. Mange ESLint-plugins som unicorn, import, ava og n kan brukes med Xo. Kommandoen som brukes for å installere xo er:

$ npm install xo --save-dev

Problemer kan fikses automatisk ved å bruke kommandoen $xo –fix. Xo kan konfigureres ved å bruke egenskapen xo i filen package.json. Den kan installeres som et plugin for ulike redigeringsprogrammer som Vim, Visual Studio Code, Atom, Sublime Text og Emacs osv.

diff2html

diff2html står for «diff parser and pretty HTML generator». Det fremhever endringene i koden for gjeldende versjon sammenlignet med forrige versjon. Det hjelper utviklere enkelt å identifisere og forstå hvilke endringer som er gjort. Det gjør dette ved hjelp av fargekoder.

Det gjør dette ved å markere endringer linje for linje og side ved side. Det fremhever kode syntaksendringer og grupperer lignende linjer sammen for enkelt å spore kodeendringer. Kommandoen for å installere diff2html er som nedenfor:

$ npm install diff2html

Det er også integrert med kommandolinjen. Noen prosjekter som bruker diff2html er Jenkins, Codacy, Ungit, git-explorer og kode-annotering osv.

Kritt

Chalk er en Node.js-modul som hjelper til med formatering og styling av kode. Det hjelper også med å lage og legge til fargetemaer til tekst. Det er et uttrykksfullt API, og ytelsen er utmerket. Den innkapsler stiler og har ingen avhengigheter. Bruken av Chalk kan sees i kodebiten nedenfor:

import chalk from 'chalk';

console.log(chalk.blue('Hello world!'));

chalk.level definerer fargene som støttes på hvert nivå. «0» indikerer at alle farger er deaktivert, «1» indikerer grunnleggende fargestøtte, «2» indikerer 256 farger støtte og «3» indikerer Truecolor støtte. De ulike stilmodifikatorene for å formatere tekst som støttes av kritt er invertert, skjult, synlig, gjennomstreket, fet, tilbakestilt, kursiv, understreket, overlinje og svak osv.

NpKill

Npkill er et verktøy som fjerner gamle og tunge nodemodulmapper. Det hjelper med å fjerne nodemoduler raskt og rydde opp plass i systemet. Det er utviklet med TypeScript, JavaScript og Go. Det har ingen avhengigheter og er enkelt å bruke. Kommandoen som brukes for å installere Npkill er:

$ npm i -g npkill

Alle nodemodulene som er spesifisert i banen med npkill-kommandoen, vil bli slettet. Man må imidlertid være forsiktig når man sletter nodemodulene, da dette er en irreversibel handling. Hvis modulene til et aktivt prosjekt blir slettet i prosessen, blir filene ødelagt, og nodemodulene må installeres på nytt.

fkill-cli

fkill-cli er et åpen kildekode og interaktivt kommandolinjeverktøy som avslutter Linux-prosesser og porter. Det er utviklet med Node.js. Det er enkelt, gratis, sikkert og kompatibelt på tvers av plattformer. Det fungerer på Windows, Linux og macOS. Kommandoen som brukes for å installere fkill-cli er:

$ npm install --global fkill-cli

Prosessnavnet og ID-en er nødvendig for å avbryte prosessen. «-f» tvinger operasjonen til å kjøre, mens kommandoen «-v» viser prosessargumenter. fkill API tar inn data og alternativer som argumenter og returnerer et løfteobjekt. Noen alternativer er force, silent, ignoreCase, tree og forceAfterTimeout.

Localtunnel

Localtunnel er en plattform som gjør det mulig å dele webtjenester fra et eksternt miljø med en datamaskins lokale miljø uten å endre systemets DNS- og brannmurinnstillinger.

Forespørslene videresendes av Localtunnel og sendes til den lokalt distribuerte serveren etter at den er tildelt en offentlig tilgjengelig URL. Kommandoen som brukes for å installere Localtunnel er som følger:

$ npm install -g localtunnel

Den er sikker og benytter HTTPS-forespørsler. Disse APIene kan brukes til å teste webhooks. Brukergrensesnittet kan testes i skynettlesere ved å bruke Localtunnel.

Inquirer.js

Inquirer.js er et interaktivt kommandolinjebrukergrensesnitt for Node.js-applikasjoner. Det forenkler prosessen med å finne feil, analysere input, validere svar og administrere hierarkiske spørsmål. Det bruker opprinnelige ESM-moduler for implementering av funksjonene. Kommandoen som brukes for å installere Inquirer.js er:

$ npm install --save inquirer

Ulike metoder som benyttes er ledetekst, registerPrompt og createPromptModule. prompt() er en funksjon som tar spørsmål og svar som input og returnerer et løfte når det kalles.

Spørsmål er et objekt som er en hashet versjon av spørsmålsrelaterte verdier som type, melding, standard, valg og filter osv. Svar-nøkkel-verdi-objektparet inneholder den hashete versjonen av klientsvar. Nøkkelen er spørsmålsegenskapen, mens verdien kan inneholde bekreftelse, input, tall og råliste osv.

http-server

http-server er en kommandolinje statisk http-server. Den er enkel og krever ingen konfigurasjoner. Den består av to filer: index.html og 404.html. index.html er standardfilen som vil bli gjengitt på forespørsel. 404.html gjengis når en fil ikke blir funnet. Kommandoen som brukes for å installere http-server er som vist nedenfor:

$ npm install --global http-server

Den ble utviklet ved hjelp av HTML og JavaScript. Den sikrer sikkerhet gjennom TLS/SSL-sertifikater. Den bruker RSA-algoritmen for nøkkelkryptering og dekryptering. Den lar deg også definere en passordfrase sammen med en privat nøkkel for sikkerhetsformål.

Siste ord

JavaScript er det mest brukte programmeringsspråket for programvareutvikling. For å gjøre livet enklere for utviklere, ble det utviklet ulike Node.js-pakker.

Node.js-pakker som Retire.js, Localtunnel, Xo, Inquirer.js, Shelljs, fpkill, NodeJsScan og Prettier osv. kan brukes til å formatere kode, sikre sikkerhet, fremheve kodeendringer og slette tunge og uønskede nodemoduler osv. Dette hjelper utviklere med å feilsøke, skrive og administrere koden sin effektivt.

Du kan også lese om hvordan du installerer Node.js og NPM på Windows og macOS.