19 Node.js-paket att känna till som JavaScript-utvecklare för produktivt och enkelt liv

By rik

Effektivisera din JavaScript-utveckling med dessa Node.js-paket

Känner du att du lägger alldeles för mycket tid på att mejsla fram JavaScript-kod? Fortsätt läsa för att upptäcka en rad Node.js-paket som kan göra livet som JavaScript-utvecklare både mer produktivt och mindre ansträngande.

JavaScript, ett synkront en-trådspråk, är det dominerande valet för program- och applikationsutveckling. Många populära ramverk, såsom Reactjs, Angularjs, Vuejs, Expressjs och Node.js, är alla byggda på JavaScript som grundspråk.

Många utvecklare stöter på utmaningar i sin JavaScript-kodning på grund av komplexa begrepp som löften, eventloop, callback-funktioner, hoisting och closures. Dessa koncept kan göra utvecklingsprocessen mer komplicerad än nödvändigt.

För att underlätta utvecklingen med JavaScript finns det ett flertal Node.js-paket tillgängliga som kan assistera med allt från felhantering och kodformatering till borttagning av filer, felsökning och säkerhetsåtgärder. Vissa paket erbjuder även interaktiva kommandoradsgränssnitt som ger visuell insikt i CPU-användning, processorkraft och felens allvarlighetsgrad.

Retire.js

Retire.js är ett JavaScript-bibliotek som identifierar och listar sårbarheter kopplade till specifika versioner av JavaScript-bibliotek.

Det kan användas som ett Chrome- eller Firefox-tillägg, som en kommandoradsskanner eller som ett Grunt-plugin. Installation görs enkelt genom kommandot:

$ npm install -g retire

Retire.js innehåller olika kommandon för att skanna JavaScript- och nodfiler. Det kan genomsöka JavaScript-webbplatser och logga varningar i utvecklarkonsolen. Om sårbarheter hittas, genereras utgångskod 13. Med en Gulp task kan filer skannas automatiskt, och sårbarheter rapporteras.

Np

Np är ett Node.js-paket som erbjuder flera funktioner, inklusive kodrensning, installation av beroenden, publicering av paket och taggning. Det ser till att koden pushas till huvudgrenen och ger ett interaktivt användargränssnitt.

Tvåfaktorsautentisering används för att öka säkerheten vid skapande av nya arkiv. Np ser till att du jobbar med den senaste versionen genom att ominstallera beroenden. Den senaste versionen pushas sedan till npm. Paketet installeras med följande kommando:

$ npm install --global np

Bland funktionerna märks möjligheten att publicera kod från valfri gren, skapa underkataloger för publicering, hoppa över kodrensning och tester. Np kan konfigureras både globalt och lokalt med hjälp av CLI-flaggor i np-konfigurationsfiler som np-config.js och np-config.json.

ESLint

ESLint är ett verktyg som analyserar JavaScript-kod och identifierar mönster enligt ECMA/JavaScript-standard. Det utvärderar koden med hjälp av ett AST (Abstract Syntax Tree). Reglerna för verktyget definieras genom plugins som kan läggas till dynamiskt vid runtime. ESLint installeras via följande kommando:

$ npm init @eslint/config

Efter installation genereras en .eslintrc-fil med en uppsättning regler, feldefinitioner och motsvarande villkor. ESLint låter alla beroenden definieras i användarens .lock-fil, och använder inte en egen. Detta bidrar till ökad säkerhet.

Shelljs

Shelljs tillhandahåller en miljö där UNIX-kommandon kan köras via Node.js API på alla operativsystem. Shelljs är portabelt och stöder plugins från tredje part. Kommandon som `echo`, `exec`, `chmod`, `pushd`, `popd`, `cd`, `cat` kan användas. Shelljs installeras med:

$ npm install [-g] shelljs

Det har testats i projekt som Firefox, JSHint och ESLint. Lokal import av Shelljs rekommenderas framför global import. Shelljs kan också konfigureras med alternativ som `silent`, `fatal` och `verbose`.

Omelett

Omelett erbjuder en mall för automatisk komplettering av kod för Node- och Deno-projekt. Det använder ett användarvänligt API och stöder både Async API och Tree API. Ett exempel på hur Omelett kan implementeras visas nedan:

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

Efter import av Omelett, skapas ett objekt av Omelett. Funktioner för automatisk komplettering som `setupShellInitFile()` för installation och `cleanupShellInitFile()` för rensning kan anropas på detta objekt. Omelett stöder även användning av lambda-funktioner för att skapa komplexa mall-API:er.

Prettier

Prettier används för att formatera kod och skapar tabbar, håller koll på maximalt innehåll per rad och garanterar korrekt indrag i villkor och loopar. Verktyget konverterar koden till ett snyggt och läsbart format. Till exempel:

Följande kod:

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

konverteras till:

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

Prettier kan köras i CI-miljöer och integrerade utvecklingsmiljöer (IDE).

jscpd

jscpd är en tjänst för hantering av teknisk skuld, som hjälper till att upptäcka duplicerad kod i olika källor och dokument. Den använder Rabin-Karp-algoritmen för strängmatchning.

`jscpd/core` har förmågan att identifiera duplicerad kod i olika miljöer, och `jspd/tokenizer` tokeniserar programmets källkod. Det finns också andra relaterade paket som `html-reporter` och `leveldb-store`. Jscpd installeras med:

$ npm install -g jscpd

jscpd används av GitHub Super Linter och Code-Inspector för bland annat naturlig språkbehandling och kodanalys.

Vtop

Vtop är ett verktyg som ger en grafisk representation av kommandoradsaktivitet, inklusive CPU-användning via trådar och processer. Informationen presenteras i form av diagram och grafer. Vtop är utvecklat i JavaScript, Makefile och Shell. Installation sker via:

$ npm install -g vtop

Olika teman och färgkoder kan anpassa gränssnittet. Kortkommandon som ”u” för uppdatering, ”g” för att gå till början av listan, ”G” för att gå till slutet av listan och ”dd” för att avsluta processer kan användas.

Standardjs

Standardjs är ett bibliotek som automatiserar filkonfiguration, formaterar kod och snabbt identifierar problem relaterade till undantagshantering. Standardjs installeras via:

$ npm install standard --global

När det är installerat kan verktyget köras över en fil eller kodavsnitt med kommandot ”standard” i kommandoradsgränssnittet. Beroenden för Standardjs kan läggas till genom att definiera `standard: ”*”` i beroendeobjektet i `package.json`.

Det kan också installeras som ett plugin för textredigerare som Visual Studio Code, Sublime Text, Atom och Vim. Node.js, Expressjs och GoDaddy använder Standardjs för sina affärsbehov.

NodeJsScan

NodeJsScan är en statisk kodskanner för säkerhet i Node.js-applikationer. Den ger information om applikationens säkerhetsstatus via ett interaktivt gränssnitt. NodeJsScan kan integreras med applikationer som Slack för varningar, e-postvarningar genom att konfigurera SMTP-inställningar i `settings.py`, och CI/CD pipelines. Det underlättar även byggandet av docker-bilder.

NodeJsScan loggar fel, information och varningar med detaljerad information om felets orsak, allvarlighetsgrad och radnummer där felet uppstått. Grafer och diagram ger en tydlig översikt.

Papperskorgen

Papperskorgen är ett bibliotek som flyttar raderade filer till papperskorgen istället för att radera dem permanent. Det stöder Mac, Linux och Windows. Papperskorgen installeras med:

$ npm install trash

`Trash` är ett API som tar emot indata och alternativ som funktionsparametrar när funktionen `trash()` anropas. Indata kan vara en sträng eller en strängarray. Alternativen representeras som ett objekt. Papperskorgen returnerar ett löfte. Olika kommandon används i olika operativsystem, t.ex. `macOS-trash` i MacOs och papperskorgen i Windows.

Xo

Xo är ett JavaScript- och TypeScript-omslag som använder ESLint. Det hjälper till att skapa läsbar kod genom att ge indrag, lägga till semikolon, enkla citattecken och kommatecken där det behövs. Många ESLint-plugins kan användas med Xo. Installation sker med:

$ npm install xo --save-dev

Problem kan åtgärdas automatiskt med `$xo –fix`. Xo kan konfigureras via `xo`-egenskapen i `package.json`. Det kan installeras som ett plugin för redigerare som Vim och Visual Studio Code.

diff2html

diff2html står för ”diff parser and pretty HTML generator”. Det markerar skillnader i koden mellan den aktuella och tidigare versionen. Detta hjälper utvecklare att enkelt se och förstå vilka ändringar som gjorts. Detta görs med hjälp av färgkoder.

Ändringar markeras rad för rad och sida vid sida. Kodsyntaxändringar framhävs och liknande rader grupperas för enkel spårning. diff2html installeras med:

$ npm install diff2html

diff2html är också integrerat med kommandoraden. Exempel på projekt som använder diff2html inkluderar Jenkins och Codacy.

Krita

Chalk är en Node.js-modul som hjälper till med formatering och styling av kod. Det möjliggör skapandet och användningen av färgteman för text. Det har ett uttrycksfullt API och utmärkt prestanda. Stilar kan häckas och Chalk har inga beroenden. Ett exempel på hur Chalk kan användas visas nedan:

import chalk from 'chalk';

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

`chalk.level` definierar vilka färger som stöds. ”0” inaktiverar alla färger, ”1” ger grundläggande stöd för färger, ”2” ger stöd för 256 färger och ”3” ger stöd för Truecolor. Chalk stöder stilmodifierare som `inverse`, `hidden`, `visible`, `strikethrough`, `bold`, `reset`, `italic`, `underline` och `dim`.

NpKill

Npkill är ett verktyg som tar bort gamla och tunga nodmodulmappar och hjälper till att snabbt rensa systemet. Det är utvecklat i TypeScript, JavaScript och Go. Npkill installeras med:

$ npm i -g npkill

Alla nodmoduler som anges i sökvägen raderas. Det är viktigt att vara försiktig eftersom borttagning inte kan ångras, och filer kan skadas om nodmoduler tas bort i ett aktivt projekt.

fkill-cli

fkill-cli är ett interaktivt kommandoradsverktyg med öppen källkod som avslutar Linux-processer och portar. Det är utvecklat med Node.js och är enkelt, säkert och plattformsoberoende. Det fungerar på Windows, Linux och macOS. fkill-cli installeras med:

$ npm install --global fkill-cli

Processens namn eller ID krävs för att avsluta processen. Flaggan ”-f” tvingar fram operationen och ”-v” visar processargument. fkill API tar emot indata och alternativ som argument och returnerar ett löfte. Alternativ är bland annat `force`, `silent` och `forceAfterTimeout`.

Localtunel

Localtunnel gör det möjligt att dela webbtjänster från en extern miljö till en dators lokala miljö utan att ändra systemets DNS- eller brandväggsinställningar.

Förfrågningar proxas av Localtunnel till den lokalt distribuerade servern via en allmänt tillgänglig URL. Localtunnel installeras med:

$ npm install -g localtunnel

Det är säkert och använder HTTPS-förfrågningar, vilket gör det möjligt att testa webhooks och användargränssnitt i molnwebbläsare.

Inquirer.js

Inquirer.js är ett interaktivt kommandoradsgränssnitt för Node.js-applikationer. Det förenklar processen att hitta fel, analysera indata, validera svar och hantera hierarkiska frågor. Inquirer.js installeras med:

$ npm install --save inquirer

Funktioner inkluderar `prompt`, `registerPrompt` och `createPromptModule`. `prompt()`-funktionen tar emot frågor och svar som indata och returnerar ett löfte. `Question` är ett objekt som innehåller frågerelaterade värden som `type`, `message`, `default` och `choices`. Svaret är ett nyckel-värde-par där nyckeln är frågeegenskapen och värdet kan vara bekräftelse, inmatning, nummer och rawlist.

http-server

http-server är en statisk http-server för kommandoraden som är enkel och kräver ingen konfiguration. Den består av `index.html`, standardfilen som visas, och `404.html` som återges när en fil inte hittas. http-server installeras med:

$ npm install --global http-server

Den är utvecklad med HTML och JavaScript och erbjuder säkerhet genom TLS/SSL-certifikat. RSA-algoritmen används för nyckel-kryptering och -dekryptering. En lösenfras och en privat nyckel kan definieras för extra säkerhet.

Sammanfattning

JavaScript är det mest använda programmeringsspråket för programvaruutveckling. Många Node.js-paket har utvecklats för att underlätta livet för utvecklare.

Node.js-paket som Retire.js, Localtunnel, Xo, Inquirer.js, Shelljs, fpkill, NodeJsScan och Prettier kan användas för att formatera kod, förbättra säkerheten, markera kodändringar och ta bort tunga nodmoduler. Dessa verktyg hjälper utvecklare att effektivt felsöka, skriva och hantera sin kod.

Du kan också läsa om hur man installerar Node.js och NPM på Windows och macOS.