Bu yararlı kitaplığı kullanarak standart komut satırı arayüzüne sahip bir programın nasıl oluşturulacağını öğrenin.

CLI (Komut Satırı Arayüzü) uygulamaları, belirli görevleri tamamlamak için terminalde çalışan basit metin tabanlı uygulamalardır. CLI uygulamaları hemen hemen her geliştiricinin ve BT uzmanının iş akışında çok önemli bir rol oynar.

Bunlar çoğunlukla işletim sistemiyle veya uygulamalarla etkileşime giren yardımcı araçlardır. Kullanıcının girişine göre bir görevi gerçekleştirmek için yerel olarak kurulur veya internet üzerinden kullanılabilir. direktifler.

CLI Uygulamalarını Anlamak

Komut satırı arayüzü, metin satırları yazarak bir programla etkileşime girmenizi sağlar. Çoğu CLI programı, onları başlatmak için kullandığınız komuta bağlı olarak farklı şekilde çalışır.

Örneğin, ls programı dosya bilgilerini görüntüler ve dizinlerin içeriği. Bunu şu şekilde çalıştırabilirsiniz:

ls -l /home

Bu komut şunları içerir:

  • Programın adı: ls.
  • Bir seçenek (veya bayrak). Bu durumda, -ben "uzun" kelimesinin kısaltması olan ve daha detaylı bilgi üreten bir seçenektir.
  • instagram viewer
  • Tartışma, /home. Burada argüman, bilgilerin gösterileceği dizine giden yolu belirtir.

Her program kendi komut satırı arayüzünü tanımlayabilirken, bazı öğeler ortaktır ve geniş kullanım alanına sahiptir. Komut satırı arayüzüne aşina olan birinin programlarınızı kolayca kullanabilmesi için bu standartlara uymalısınız.

Commander.js nedir?

Commander.js Node.js'de CLI uygulamaları oluşturmanıza olanak tanıyan bir paket. Ağır işlerin çoğunu gerçekleştirerek standart bir CLI uygulaması oluşturmanıza olanak tanıyan zengin bir özellik kitaplığına sahiptir. CLI uygulamanız için yalnızca komutları, seçenekleri ve işlevleri tanımlamanız gerekir.

Stillendirme için Chalk.js gibi diğer paketlerle birleştirerek, Node.js'de hızlı bir şekilde tamamen işlevsel bir CLI uygulaması oluşturabilirsiniz.

Commander.js Kullanarak Node.js'de CLI Uygulaması Oluşturma

Örnek bir CLI uygulamasını düşünün, kentsel-cli, Kelimelerin anlamlarını ve sosyal medya kısaltmalarını araştıran Kent Sözlüğü. CLI'yi nasıl oluşturacağınızı ve CLI'de nasıl yayınlayacağınızı öğreneceksiniz. npm Başkalarının yükleyebilmesi için paket kayıt defteri.

Yeni bir klasör oluşturun ve aşağıdaki komutlarla yeni bir Node.js projesini başlatın:

mkdir urbanary-cli
cd urbanary-cli
npm init -y

Bu CLI'nin kullanacağı HTTP isteklerini göndermek için Axios Urban Dictionary API'sine. Kullanabilirsiniz Hızlı API uç noktaları kontrol etmek ve kimlik bilgilerini görüntülemek için.

Alt Komut ve Yardım İçeren Basit Bir CLI

CLI'nizi oluşturmaya başlamak için Commander ve Axios'u aşağıdaki komutla yükleyin:

npm install commander axios

Yeni bir klasör oluşturun, çöp Kutusu, proje dizininizde ve yeni bir boş dosyada, index.js:

mkdir bin
cd bin
touch index.js

çöp Kutusu ("ikili"nin kısaltması) klasörü önemlidir çünkü CLI'nizi çalıştırdığınızda Node'un çağırdığı giriş noktası dosyasını tutar. index.js dosya bu giriş noktası dosyasıdır. Şimdi index.js dosyasını düzenleyin ve CLI'nizi Commander.js API ile oluşturmaya başlayın.

Öncelikle içe aktarın programı Komutan'dan gelen nesne:

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

Şunu kullanacaksınız: programı alt komutlar, seçenekler ve argümanlar dahil olmak üzere programınızın arayüzünü tanımlamak için nesne. Nesnenin bunların her birine karşılık gelen yöntemleri vardır; örneğin, bir alt komut tanımlamak için şunu kullanın: emretmek yöntem.

Bir tanımla bulmak CLI'nin Urban Dictionary'den kelimeleri aramasını ve aşağıdaki kodu kullanarak bunun için bir açıklama eklemesini sağlayan alt komut:

// index.js
program
.command('find ')
.description('find meaning of a word or abbreviation or slang')

Bu bir kayıt yapar bulmak kendisinden sonra bir kelime ve bunun için bir açıklama bekleyen komut. Açılı parantezlerin kullanılması, kelimenin gerekli bir argüman olduğunu belirtir; bunun yerine köşeli parantez kullanın ([]) isteğe bağlı hale getirmek için.

Commander.js bunu yardım metni oluşturmak için kullandığından bir açıklama eklemelisiniz. Uygulamayı çalıştırdığınızda yardım komutunu çalıştırdığınızda standart bir kullanım kılavuzu alacaksınız.

Bunu test etmek için aşağıdakileri ekleyin:

program.parse()

Daha sonra programı çalıştırın ve iletin yardım Aşağıdaki çıktıyı almak için komut:

Herhangi bir standart CLI uygulaması yardımını kullanıcılara bu şekilde gösterecektir ve Commander ile bunu kendiniz oluşturma konusunda endişelenmenize gerek yoktur. -H Ve --yardım seçenekler bir komutun kullanım kılavuzunu kontrol etmek için kullanışlıdır.

Seçeneklerin Belirlenmesi ve Nihai Programın Hazırlanması

Ayrıca zincirleyerek bir seçenek de tanımlarsınız. seçenek komut tanımına yöntem.

Kelimelerin tanımlarına örnek ekleme seçeneğini nasıl tanımlayacağınız aşağıda açıklanmıştır:

program.option('-e, --example', "Display examples")

Döndürülecek tanımların sayısını belirten bir seçeneğin nasıl tanımlanacağı aşağıda açıklanmıştır:

program.option(
'-c, --count [amount]',
'amount of definitions to display (max is 10)'
)

seçenek yöntem, biri seçeneğin adı (hem kısa hem de uzun formlar) ve diğeri açıklaması için olmak üzere iki dize parametresini kabul eder. Ekstra [miktar] içindeki argüman saymak seçeneği görüntülenecek tanımların sayısı için değerdir.

Şimdi eklenecek son yöntem aksiyon yöntem. Bunu uygulayacaksınız bulmak Bu yöntemdeki komutun işlevselliği. Kodunuzun şu şekilde görünmesi için onu zincire ekleyin:

program
.command('find ')
.description('find meaning of a word or abbreviation or slang')
.option('-e, --example', "Display examples")
.option(
'-c, --count [amount]',
'amount of definitions to display (max is 10)'
)
.action(async (word, options) => {});

Bu kurulumla, üç tanım elde etmek için komut şu şekildedir: yüksek sesle gülmek örneklerle şöyle görünecek:

urbanary-cli find lol -e -c 3

Veya her seçeneğin uzun biçimini kullanarak:

urbanary-cli find lol --example --count 3

Çıkış yapmak Komutanın npm sayfası hakkında daha fazla bilgi edinmek ve işlevlerini farklı kullanım durumlarınıza nasıl uyarlayacağınızı öğrenmek için.

Programın İşlevselliğini Uygulama

Öncelikle Axios'u cihazınıza aktarın. index.js aşağıdaki gibi dosya:

const axios = require('axios');

Daha sonra, işlev gövdesinde aksiyonparametresini kullanarak Urban Dictionary'e istek yapma mantığını uygulayabilir ve seçeneklerinize göre sonuçları görüntüleyebilirsiniz.

İsteğinizi tanımlayarak başlayın:

let requestOptions = {
method: 'GET',
URL: "https://mashape-community-urban-dictionary.p.rapidapi.com/define",
params: { term: word },
headers: {
'X-RapidAPI-Key': YOUR_RAPID_API_KEY,
'X-RapidAPI-Host': 'mashape-community-urban-dictionary.p.rapidapi.com'
}
}

Daha sonra aşağıdaki kodla Axios'u kullanarak API'ye istekte bulunun:

try {
let resp = await axios.request(requestOptions);
console.log(`Definitions for ${word} fetched`);
wordData = resp.data.list;
} catch (err) {
console.error(err.message)
}

Yanıt verilerinden ihtiyacınız olan tek özellik liste Tanımları ve örnekleri barındıran özellik.

Hala denemek blok, seçenekleri işlemek için bu mantığı ekleyin ve sonuçları aşağıdaki gibi görüntüleyin:

if (options.example && options.count) {
let cnt = 1;
let definitions = wordData.slice(0, options.count);

definitions.forEach((elem) => {
console.log(`Definition ${cnt++}: ${elem.definition}`);
console.log(`Example:\n${elem.example}\n`);
});
} elseif (options.count && !options.example) {
let cnt = 1;
let definitions = wordData.slice(0, options.count);

definitions.forEach((elem) => {
console.log(`Definition ${cnt++}: ${elem.definition}`);
});
} elseif (options.example) {
console.log(`Definition: ${wordData[0].definition}`);
console.log(`Example:\n${wordData[0].example}`);
} else {
console.log(`Definition: ${wordData[0].definition}`);
}

Bu kod, çıktının nasıl görüntüleneceğini belirlemek için if-else ifadelerini kullanarak komut bağımsız değişkenlerini değerlendirir. Eğer örnek Ve saymak seçenekler aktarılır, yinelenir kelimeVerileri ve belirtilen sayıda tanımı ve örneği onlarla birlikte yazdırır.

Eğer sadece geçersen saymak, bu miktardaki tanımı örnekler olmadan görüntüler. Eğer sadece geçersen örnekörnek bir cümle ile bir tanımı görüntüler. başka ifadesi, herhangi bir seçeneği iletmemeniz durumunda yalnızca tanımın yazdırılmasına yönelik varsayılan davranıştır.

Uygulama artık hazır, dolayısıyla bir sonraki adım onu ​​çalıştırılabilir hale getirmektir. Eklemeye başlayın bir shebang hattı bağımsız bir komut dosyası olarak çalıştırabilmeniz için bin/index.js dosyanızın başına:

#!/usr/bin/env node

Ardından, cihazınızı açın paket.json dosyasının değerini düzenleyin ana özellik ekleyin ve bir çöp Kutusu bundan sonraki özellik şöyle:

"main": "./bin/index.js",
"bin": {
"urbanary-cli": "./bin/index.js"
},

Anahtar kentsel-cli, altında çöp Kutusu uygulamanızı çalıştırmak için terminalinize gireceğiniz komuttur. Bu nedenle, komut satırı uygulamalarınızı oluştururken buraya uygun bir ad kullandığınızdan emin olun.

Koşmak npm kurulumu -g Uygulamayı global olarak kurmak için uygulamayı terminalinizden bir komut olarak çalıştırabileceksiniz.

Aşağıdaki resim kurulum işlemini ve anlamını bulmak için bir test komutunu göstermektedir. ımk:

Ayrıca çalıştırarak npm paket kayıt defterinde de yayınlayabilirsiniz. npm yayınla proje dizini içindeki terminalde. Bu, herhangi bir yerden herhangi bir kullanıcı tarafından kurulabilmesini sağlar. npm kurulumu.

Uygulamanızı Node.js ile oluşturmak ve yayınlamak, Node.js ile karşılaştırıldığında daha kolaydır. Rust gibi teknolojilerle CLI'ler oluşturun.

Node.js ile İşlevsel CLI Uygulamaları Oluşturun

İster bir npm paketi üzerinde çalışıyor olun ve ona eşlik edecek bir CLI yardımcı programına ihtiyacınız olsun, ister yalnızca geliştirici olarak iş akışınızı iyileştirecek bir araç oluşturmak isteyin. Node.js Commander paketiyle fikrinizi hayata geçirmek için ihtiyacınız olan her şeye sahipsiniz.

Uygulamalarınız için gelişmiş CLI deneyimleri oluşturmak amacıyla diğer kitaplıkları kullanarak da daha da ileri gidebilirsiniz; Node.js, amaçlarınıza çok fazla sorun yaşamadan hizmet edecek kadar güçlüdür.