19 Ноде.јс пакета које треба знати као ЈаваСцрипт програмер за продуктиван и лак живот

Da li prekomerno trošite vreme pokušavajući da kreirate JavaScript kod? Nastavite sa čitanjem kako biste otkrili raznovrsne Node.js pakete koji mogu znatno olakšati i učiniti produktivnijim život JavaScript programera.

JavaScript je sinhroni, jednoprocesni jezik. To je najčešće upotrebljavan programski jezik za razvoj softvera i aplikacija. Mnogi popularni frejmvorkovi, kao što su Reactjs, Angularjs, Vuejs, Expressjs i Node.js, izgrađeni su koristeći JavaScript kao svoj osnovni jezik.

Brojni programeri suočavaju se sa poteškoćama prilikom kodiranja u JavaScript-u zbog kompleksnih koncepata kao što su obećanja, event loop, povratni pozivi, hoisting i closures.

Kako bi se razvoj u JavaScript-u učinio lakšim, dostupni su mnogi Node.js paketi koji pomažu u obradi grešaka, formatiranju koda, brisanju fajlova, debagovanju, osiguranju bezbednosti i pružaju interaktivne korisničke interfejse za komandnu liniju. Oni omogućavaju bolji vizuelni prikaz opterećenja procesora, kapaciteta obrade, nivoa grešaka i slično.

Retire.js

Retire.js je JavaScript biblioteka koja pruža listu ranjivosti povezanih sa različitim verzijama JavaScript biblioteka.

Može se koristiti kao dodatak za Chrome, proširenje za Firefox, skener komandne linije, Grunt plugin, itd. Instalacija se vrši pomoću sledeće komande:

$ npm install -g retire

Retire.js ima različite komande za skeniranje JavaScript i Node fajlova. Skener pretražuje JavaScript veb lokacije i beleži upozorenja u developerskoj konzoli. Retire.js generiše izlazni kod 13 kada pronađe ranjivosti. Gulp task automatski skenira fajlove i prijavljuje sve ranjivosti.

Np

Np je JavaScript paket koji pruža raznovrsne funkcije kao što su čišćenje koda, instalacija zavisnosti, objavljivanje paketa i označavanje tagovima. Osigurava da se kod gura u glavnu granu i pruža interaktivni korisnički interfejs.

Dvofaktorska autentifikacija se koristi da bi se poboljšala sigurnost novih repozitorijuma. Osigurava da se posao obavlja na najnovijoj verziji ponovnom instalacijom zavisnosti. Najnovija verzija se gura u npm. Instalacija se vrši pomoću sledeće komande:

$ npm install --global np

Njegove različite karakteristike obuhvataju objavljivanje koda iz bilo koje grane, kreiranje poddirektorijuma za objavljivanje, preskakanje koraka čišćenja i testiranja koda, itd. Konfigurisanje np-a se može obaviti globalno i lokalno, korišćenjem CLI zastavica u konfiguracionim fajlovima np-a, kao što su np-config.js i np-config.json.

ESLint

ESLint je alatka za JavaScript pakete koja analizira JavaScript kod i identifikuje obrasce u ECMAScript/JavaScript kodu. On vrši procenu obrazaca u kodu koristeći AST (Abstract Syntax Tree). Sva pravila alata definisana su u obliku pluginova i mogu se dinamički dodavati tokom rada. ESLint se može instalirati pomoću sledeće komande:

$ npm init @eslint/config

Nakon instalacije pomoću navedene komande, generiše se .eslintrc datoteka sa skupom pravila, definicijama grešaka i njihovim odgovarajućim uslovima. ESLint omogućava da se sve zavisnosti definišu u .lock fajlu korisnika i ne koristi sopstveni .lock fajl. Takođe je veoma siguran.

Shelljs

Shelljs je okruženje u kom se UNIX komande mogu izvršavati na bilo kom operativnom sistemu preko Node.js API-ja. Shelljs je portabilan i podržava pluginove trećih strana. Različite komande koje se mogu koristiti su echo, exec, chmod, pushd, popd, cd, cat, itd. Sledeća komanda se može koristiti za instalaciju Shelljs-a:

$ npm install [-g] shelljs

Testiran je u različitim projektima kao što su Firefox, JSHint, ESLint, Zepto, itd. Lokalni uvoz Shelljs paketa je poželjniji od globalnog uvoza. Takođe se može konfigurisati kao tih, fatalan, detaljan itd.

Omelette

Omelette pruža automatsko dopunjavanje koda za Node i Deno projekte. Koristi jednostavan API i podržava Async API i Tree API. Primer segmenta koda za primenu Omelette-a je dat u nastavku:

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()

Nakon uvoza Omelette-a, mora se kreirati Omelette objekat. Zatim, razne funkcije za automatsko dopunjavanje koda kao što su setupShellInitFile() za podešavanje i cleanupShellInitFile() za čišćenje mogu se pozvati na omelette objektu za automatsko dopunjavanje koda. Takođe podržava upotrebu Lambda funkcija za kreiranje složenih API-ja literalnih šablona.

Prettier

Prettier se koristi za formatiranje koda. Pomaže u dodavanju razmaka, prati maksimalan sadržaj u jednom redu i obezbeđuje pravilno uvlačenje u uslovnim i petljastim izjavama. Pretvara kod u uredan i čitljiv format. Na primer:

Segment koda je dat ispod:

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

se konvertuje u sledeći oblik kada se koristi Prettier plugin:

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

Može da radi u CI okruženjima, integrisanim razvojnim okruženjima (IDE), itd.

jscpd

jscpd je tehnička usluga upravljanja duplikatima. To je JavaScript paket koji pomaže u pronalaženju duplikata segmenata koda u različitim kodovima i digitalnim dokumentima. Koristi algoritam za pronalaženje podudarnosti stringova pod nazivom Rabin-Karp za pronalaženje duplikata koda.

jscpd/core ima mogućnost da otkrije dupliranje koda u različitim okruženjima, a jspd/tokenizer se koristi za tokenizaciju izvornog koda programa. Pored ovoga, postoji još mnogo drugih paketa kao što su html-reporter, badge-reporter, leveldb-store, itd. Komanda za instaliranje jscpd-a je:

$ npm install -g jscpd

jscpd koriste GitHub Super Linter, Code-Inspector, Mega-Linter, Codacy, itd. Svaki od njih koristi jscpd za različite svrhe. Koriste ga za obradu prirodnog jezika, linijske agregatore, analizu koda itd.

Vtop

Vtop je monitor koji daje grafički prikaz aktivnosti komandne linije. On daje informacije o korišćenju CPU-a analizirajući različite niti i procese koji se pokreću i predstavlja ih grafički pomoću grafikona, linija, itd. Razvijen je korišćenjem JavaScript-a, Makefile-a i Shell-a. Komanda za instaliranje Vtop-a je:

$ npm install -g vtop

Različite teme i kodovi boja mogu se koristiti da bi GUI bio atraktivniji u skladu sa zahtevima. Različite prečice na tastaturi poput ‘u’ za ažuriranje, ‘g’ za odlazak na gornji proces na listi, ‘G’ za prelazak na kraj liste, ‘dd’ za ukidanje procesa koji pripadaju određenoj grupi, itd. se mogu koristiti.

Standardjs

Standardjs je JavaScript biblioteka koja automatizuje konfiguraciju fajlova, formatira kod i brzo pronalazi probleme sa greškama u obradi izuzetaka. Komanda za instaliranje Standardjs-a data je u nastavku:

$ npm install standard --global

Nakon instalacije, možete ga pokrenuti preko dela datoteke/koda pomoću komande „standard“ u interfejsu komandne linije. Sve zavisnosti Standardjs-a mogu se dodati definisanjem „standard: „*“ u objektu zavisnosti u fajlu package.json.

Takođe se može instalirati kao dodatak za razne uređivače teksta kao što su Visual Studio Code, Sublime Text, Atom, Vim, Brackets, itd. Node.js, Expressjs, npm, Brave i GoDaddy koriste Standardjs kako bi zadovoljili svoje poslovne zahteve.

NodeJsScan

NodeJsScan je skener statičkog bezbednosnog koda za Node.js aplikacije. Informiše o bezbednosnom statusu aplikacije preko interaktivnog korisničkog interfejsa. Može se integrisati sa različitim aplikacijama kao što su Slack za upozorenja/obaveštenja, obaveštenja putem e-pošte konfiguracijom SMTP podešavanja u datoteci settings.py NodeJsScan-a, CI/CD pipeline-ovima, itd. Takođe pomaže u kreiranju Docker slika.

Beleži greške, informacije i poruke upozorenja. Daje detaljan opis greške, kao što je razlog za njeno pojavljivanje, ozbiljnost, brojevi linija u kojima su se greške pojavile, broj skeniranih fajlova i pronađeni problemi, itd. Grafikoni se takođe prikazuju radi bolje čitljivosti i analize.

Trash

Trash je JavaScript biblioteka koja premešta izbrisane fajlove u kantu za otpatke, umesto da ih trajno briše. Podržava Mac, Linux i Windows. Komanda koja se koristi za instalaciju Trash-a je:

$ npm install trash

Trash je API koji uzima ulaz i opcije kao parametre funkcije kada se pozove funkcija trash(). Ulaz može biti string ili niz stringova. Opcije mogu biti objekat. Funkcija trash vraća obećanje. U različitim operativnim sistemima se koriste različite komande. macOS trash se koristi u macOS-u, XDG Spec u Linux-u, i Recycle Bin u Windows-u.

Xo

Xo je wrapper za JavaScript i TypeScript koji koristi ESLint u pozadini. Pomaže u kreiranju čitljivog koda dodavanjem uvlačenja kodu, tačka-zareza, pojedinačnih navodnika, zareza, itd. gde god je to potrebno. Mnogi ESLint dodaci, kao što su unicorn, import, ava, n, itd., mogu se koristiti sa Xo-om. Komanda koja se koristi za instalaciju xo-a je:

$ npm install xo --save-dev

Problemi se mogu automatski rešiti pomoću komande $xo –fix. Xo se može konfigurisati korišćenjem svojstva xo u fajlu package.json. Može se instalirati kao dodatak za razne uređivače kao što su Vim, Visual Studio Code, Atom, Sublime Text, Emacs, itd.

diff2html

diff2html je skraćenica za „diff parser and pretty HTML generator”. Ističe promene u kodu trenutne verzije u poređenju sa prethodnom verzijom. Pomaže programerima da lako identifikuju i razumeju koje su promene napravljene. To radi pomoću kodova boja.

Ističe promene po linijama i poređenja. Ističe promene sintakse koda i grupiše slične linije zajedno radi lakšeg praćenja promena u kodu. Komanda za instalaciju diff2html je data u nastavku:

$ npm install diff2html

Takođe je integrisan u komandnu liniju. Neki od projekata koji koriste diff2html su Jenkins, Codacy, Ungit, git-explorer, code-annotation, itd.

Chalk

Chalk je Node.js modul koji pomaže u formatiranju i stilizovanju koda. Takođe pomaže u kreiranju i dodavanju tema boja u tekst. To je ekspresivan API, a njegove performanse su odlične. Ugnježđuje stilove i nema zavisnosti. Upotreba Chalk-a se može videti u segmentu koda ispod:

import chalk from 'chalk';

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

chalk.level definiše boje koje su podržane na svakom nivou. ‘0’ označava da su sve boje onemogućene, ‘1’ označava osnovnu podršku bojama, ‘2’ označava podršku za 256 boja, a ‘3’ označava podršku za Truecolor. Različiti modifikatori stilova za formatiranje teksta koje podržava Chalk su inverzni, skriveni, vidljivi, precrtani, podebljani, resetovani, kurziv, podvučeni, precrtani, zatamnjeni itd.

NpKill

Npkill je alatka koja uklanja stare i teške foldere čvorova modula. Pomaže u veoma brzom uklanjanju modula čvorova i oslobađanju prostora u vašem sistemu. Razvijen je korišćenjem TypeScript-a, JavaScript-a i Go-a. Nema zavisnosti i lak je za upotrebu. Komanda koja se koristi za instaliranje Npkill-a je:

$ npm i -g npkill

Svi moduli čvora navedeni u putanji sa komandom npkill biće izbrisani. Međutim, treba biti oprezan dok brišete module čvora jer je to nepovratno. Ako se moduli bilo kog aktivnog projekta izbrišu tokom procesa, fajlovi se oštećuju i moduli čvora moraju ponovo da se instaliraju.

fkill-cli

fkill-cli je open-source i interaktivni alat komandne linije koji zaustavlja Linux procese i portove. Razvijen je korišćenjem Node.js. Jednostavan je, besplatan, siguran i kompatibilan sa više platformi. Radi na Windows, Linux i macOS operativnim sistemima. Komanda koja se koristi za instalaciju fkill-cli je:

$ npm install --global fkill-cli

Ime procesa i ID su potrebni da bi se proces zaustavio. „-f“ forsira operaciju da se izvrši dok komanda „-v“ prikazuje argumente procesa. fkill API uzima inpute i opcije kao svoje argumente i vraća objekat obećanja. Neke opcije su force, silent, ignoreCase, tree i forceAfterTimeout.

Localtunnel

Localtunnel je platforma koja omogućava deljenje veb servisa iz spoljašnjeg okruženja sa lokalnim okruženjem računara bez menjanja DNS sistema i podešavanja zaštitnog zida.

Localtunnel prosleđuje zahteve lokalno postavljenom serveru nakon što mu je dodeljen javno dostupan URL. Komanda koja se koristi za instalaciju Localtunnela je sledeća:

$ npm install -g localtunnel

Siguran je i koristi HTTPS zahteve. Ovi API-ji se mogu koristiti za testiranje webhook-ova. UI se može testirati u browserima u oblaku koristeći Localtunnel.

Inquirer.js

Inquirer.js je interaktivni korisnički interfejs komandne linije za Node.js aplikacije. Olakšava proces pronalaženja grešaka, raščlanjivanja unosa, validacije odgovora i upravljanja hijerarhijskim upitima. Koristi matične ESM module za implementaciju svojih funkcionalnosti. Komanda koja se koristi za instalaciju Inquirer.js je:

$ npm install --save inquirer

Različite metode koje se koriste uključuju prompt, registerPrompt, createPromptModule, itd. prompt() je funkcija koja uzima pitanja i odgovore kao ulaze i vraća obećanje kada se pozove.

Pitanje je objekat koji je heširana verzija vrednosti u vezi sa pitanjem, kao što su tip, poruka, podrazumevano, izbori, filter, itd. Par ključ-vrednost odgovora sadrži heširanu verziju odgovora klijenta. Ključ je svojstvo pitanja, dok vrednost može sadržati potvrdu, unos, broj, neobrađenu listu, itd.

http-server

http-server je statički http server komandne linije. Jednostavan je i ne zahteva nikakve konfiguracije. Sastoji se od 2 datoteke: index.html i 404.html. index.html je podrazumevana datoteka koja bi se prikazivala na zahtevima. 404.html se prikazuje kada datoteka nije pronađena. Komanda koja se koristi za instalaciju http-servera je prikazana ispod:

$ npm install --global http-server

Razvijen je korišćenjem HTML-a i JavaScript-a. Osigurava sigurnost putem TLS/SSL sertifikata. Koristi RSA algoritam za šifrovanje i dešifrovanje ključa. Takođe omogućava da se definiše pristupna fraza zajedno sa privatnim ključem iz sigurnosnih razloga.

Završne reči

JavaScript je programski jezik koji se najčešće koristi za razvoj softvera. Kako bi se programerima olakšao život, razvijeni su različiti Node.js paketi.

Node.js paketi kao što su Retire.js, Localtunnel, Xo, Inquirer.js, Shelljs, fkill, NodeJsScan, Prettier, itd., mogu se koristiti za formatiranje koda, obezbeđivanje sigurnosti, isticanje promena u kodu, brisanje teških i nepotrebnih čvorova modula, itd. Ovo pomaže programerima da efikasno otklanjaju greške, pišu i upravljaju svojim kodom.

Takođe možete pročitati o tome kako da instalirate Node.js i NPM na Windows i macOS.