Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Brug af Commander-modulet til CLI-apps | Opbygning af Konsolapplikationer med Node.js
Backend-Udvikling med Node.js og Express.js

Brug af Commander-modulet til CLI-apps

Stryg for at vise menuen

Udvikling af et kommandolinjeinterface (CLI) med et modul som Commander kan gøre processen mere overskuelig. Selvom Node.js tilbyder indbyggede mekanismer til at håndtere kommandolinjeargumenter, kan disse hurtigt blive komplekse at administrere, efterhånden som CLI'en udvides. Her er Commander nyttig, da det tilbyder følgende fordele:

  • Effektiv CLI-udvikling: Commander forenkler oprettelsen af et CLI ved at minimere kompleksiteten, så vi kan fokusere på at definere kommandoer og deres funktioner;
  • Detaljerede beskrivelser af kommandoer og muligheder: Med Commander kan vi nemt tilføje beskrivelser til kommandoer og muligheder, hvilket øger brugervenligheden af CLI'en;
  • Automatisk argumentparsing: Commander automatiserer processen med at parse kommandolinjeargumenter, hvilket minimerer den mængde kode, vi manuelt skal skrive for at håndtere argumenter.

Installation af Commander-modulet

Først skal vi installere Commander-modulet fra NPM. Bare rolig, processen er enkel. Før vi kan begynde at bruge Commander-modulet, skal vi tilføje det til vores projekt. Kør blot følgende kommando for at installere det:

npm install commander

Oprettelse af kommandoer og muligheder

Med Commander kan vi definere kommandoer, specificere deres funktionalitet og endda tilføje beskrivelser. Derudover kan vi forklare muligheder, der ændrer kommandoernes opførsel. Her er et eksempel på, hvad vi kan opnå med Commander:

Definering af en kommando

For at definere en kommando bruges .command()-metoden på programobjektet. Grundstrukturen er:

program.command('commandName [arguments]')
  • commandName: Navnet på kommandoen;
  • [arguments] : Valgfrie argumenter, som kommandoen accepterer.

Tilføjelse af kommando-beskrivelser

En beskrivelse til kommandoen kan angives med .description()-metoden:

program.command('commandName [arguments]').description('Description of the command');

Håndtering af kommandohandlinger

Angiv handlingen, der skal udføres, når kommandoen køres, ved hjælp af .action()-metoden. Her defineres logikken for kommandoen:

program.command('commandName [arguments]').action((...arguments) => {
  // Command logic goes here
});

Her er et komplet eksempel:

program
  .command('greet <name>')
  .description('Greet a person')
  .action((name) => {
    console.log(`Hello, ${name}!`);
  });

Her er kodeeksemplet fra videoen:

const { program } = require("commander");

program
  .version("1.0.0")
  .command("greet <name>")
  .description("Greet a person")
  .action((name) => {
    console.log(`Hello, ${name}!`);
  });

program.parse(process.argv);
Kodebeskrivelse
expand arrow
  • Linje 1: importerer program-objektet fra commander-biblioteket. Dette objekt bruges til at definere og administrere kommandolinjegrænsefladen;
  • Linje 3: angiver applikationens version til 1.0.0. Denne version vises, når brugere kører applikationen med flaget --version;
  • Linje 4: definerer en greet-kommando, der accepterer et påkrævet <name>-argument;
  • Linje 5: tilføjer en beskrivelse til greet-kommandoen for at forklare dens formål;
  • Linje 6: definerer handlingen, der udføres, når greet-kommandoen kaldes:
(name) => {
  console.log(`Hello, ${name}!`);
}

Funktionen modtager argumentet name og udskriver en hilsen ved hjælp af en template literal;

  • Linje 9: parser kommandolinjeargumenterne ved hjælp af process.argv og udfører den tilsvarende kommando.

Resumé

Denne kode opretter en simpel CLI-applikation ved hjælp af commander-biblioteket. Den definerer en greet-kommando, accepterer et navn som input, udfører en hilsen-handling og behandler kommandolinjeargumenter for at køre den relevante kommando.

Prøv det selv

Læring opleves bedst gennem praktisk øvelse. Prøv at køre denne kode på din computer og se magien udfolde sig. Interagér med scriptet og nyd spændingen ved at skabe unikke hilsener ved hjælp af Commander!

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 2. Kapitel 6

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

Sektion 2. Kapitel 6
some-alt