Node.js에서 CLI 애플리케이션을 구축하는 방법

Node.js에서 CLI 애플리케이션을 구축하는 방법
당신과 같은 독자들이 MUO를 지원하는 데 도움을 줍니다. 귀하가 당사 사이트의 링크를 사용하여 구매하면 당사는 제휴 수수료를 받을 수 있습니다. 자세히 읽어보세요.

CLI(명령줄 인터페이스) 애플리케이션은 특정 작업을 완료하기 위해 터미널에서 실행되는 단순한 텍스트 기반 앱입니다. CLI 애플리케이션은 거의 모든 개발자와 IT 전문가의 워크플로우에서 중요한 역할을 합니다.





이는 대부분 사용자의 입력 및 지시에 따라 작업을 수행하기 위해 로컬로 설치되거나 인터넷을 통해 사용할 수 있는 운영 체제 또는 응용 프로그램과 상호 작용하는 유틸리티 도구입니다.





CLI 애플리케이션 이해

명령줄 인터페이스를 사용하면 텍스트 줄을 입력하여 프로그램과 상호 작용할 수 있습니다. 많은 CLI 프로그램은 시작하는 데 사용하는 명령에 따라 다르게 실행됩니다.





예를 들어, ls 프로그램은 파일 정보를 표시합니다. 그리고 디렉토리의 내용. 다음과 같이 실행할 수 있습니다.

 ls -l /home

이 명령에는 다음이 포함됩니다.



  • 프로그램 이름: ㅋㅋㅋ .
  • 옵션(또는 플래그)입니다. 이 경우, -엘 'long'의 약어이며 더 자세한 정보를 생성하는 옵션입니다.
  • 논쟁, /집 . 여기서 인수는 정보를 표시할 디렉터리 경로를 지정합니다.

각 프로그램은 자체 명령줄 인터페이스를 정의할 수 있지만 특정 요소는 공통적이고 널리 사용됩니다. 명령줄 인터페이스에 익숙한 사람이 프로그램을 쉽게 사용할 수 있도록 이러한 표준을 따라야 합니다.

Commander.js란 무엇인가요?

Commander.js는 Node.js에서 CLI 앱을 빌드할 수 있는 패키지 . 여기에는 많은 양의 작업을 수행하면서 표준 CLI 애플리케이션을 구축할 수 있는 풍부한 기능 라이브러리가 있습니다. CLI 앱에 대한 명령, 옵션 및 기능만 정의하면 됩니다.





스타일링을 위해 Chalk.js와 같은 다른 패키지와 결합하면 Node.js에서 모든 기능을 갖춘 CLI 앱을 빠르게 만들 수 있습니다.

Commander.js를 사용하여 Node.js에서 CLI 애플리케이션 구축

예제 CLI 앱을 고려해보세요. 도시-클리, 단어의 의미와 소셜 미디어 약어를 찾아봅니다. 도시 사전 . CLI를 생성하고 이를 게시하는 방법을 배우게 됩니다. npm 다른 사람이 설치할 수 있도록 패키지 레지스트리를 만듭니다.





온라인으로 무료로 전화로 영화보기

다음 명령을 사용하여 새 폴더를 만들고 새 Node.js 프로젝트를 초기화합니다.

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

이 CLI는 HTTP 요청을 보내는 Axios Urban Dictionary API에. 당신이 사용할 수있는 신속한 API 끝점을 확인하고 자격 증명을 봅니다.

  Urban Dictionary API 스크린샷's page on Rapid API show user API credentials

하위 명령과 도움말이 포함된 간단한 CLI

CLI 구축을 시작하려면 다음 명령을 사용하여 Commander와 Axios를 설치하십시오.

 npm install commander axios 

새 폴더를 만들고, 큰 상자 , 프로젝트 디렉토리와 새로운 빈 파일에 index.js :

PC에서 휴대폰을 제어하는 ​​방법
 mkdir bin 
cd bin
touch index.js

그만큼 큰 상자 ('바이너리'의 약어) 폴더는 CLI를 실행할 때 Node가 호출하는 진입점 파일을 보관하기 때문에 중요합니다. 그만큼 index.js file은 이 진입점 파일입니다. 이제 index.js 파일을 편집하고 Commander.js API를 사용하여 CLI 구축을 시작하세요.

먼저, 프로그램 사령관의 개체:

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

당신은 프로그램 하위 명령, 옵션 및 인수를 포함하여 프로그램의 인터페이스를 정의하는 개체입니다. 객체에는 이들 각각에 해당하는 메서드가 있습니다. 예를 들어 하위 명령을 정의하려면 다음을 사용합니다. 명령 방법.

정의하다 찾다 CLI에 대한 하위 명령을 사용하여 Urban Dictionary에서 단어를 검색하고 아래 코드를 사용하여 이에 대한 설명을 추가합니다.

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

이것은 찾다 명령 뒤에 단어가 있어야 하고 이에 대한 설명이 필요합니다. 꺾쇠 괄호를 사용하면 해당 단어가 필수 인수임을 의미합니다. 대신 대괄호를 사용하십시오( [] ) 선택사항으로 설정합니다.

Commander.js가 설명을 사용하여 도움말 텍스트를 생성하므로 설명을 추가해야 합니다. 다음과 같이 애플리케이션을 실행하면 돕다 명령을 실행하면 표준 사용 가이드가 제공됩니다.

이를 테스트하려면 다음을 추가하세요.

 program.parse()

그런 다음 프로그램을 실행하고 돕다 아래 출력을 얻는 명령 :

  help 명령 실행 결과를 보여주는 스크린샷

이것이 표준 CLI 응용 프로그램이 사용자에게 도움말을 표시하는 방법이며 Commander를 사용하면 직접 도움말을 만드는 것에 대해 걱정할 필요가 없습니다. 그만큼 -시간 그리고 --돕다 옵션은 명령의 사용법 가이드를 확인하는 데 유용합니다.

옵션 정의 및 최종 프로그램 준비

또한 다음을 연결하여 옵션을 정의합니다. 옵션 명령 정의에 대한 메소드입니다.

단어 정의에 예를 포함하는 옵션을 정의하는 방법은 다음과 같습니다.

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

반환할 정의 수를 지정하는 옵션을 정의하는 방법은 다음과 같습니다.

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

그만큼 옵션 메소드는 두 개의 문자열 매개변수를 허용합니다. 하나는 옵션 이름(짧은 형식과 긴 형식 모두)용이고 다른 하나는 설명용입니다. 여분의 [양] 의 주장 세다 option은 표시할 정의 수에 대한 값입니다.

이제 마지막으로 추가할 방법은 행동 방법. 당신은 찾다 이 메소드 내에서 명령의 기능. 이제 코드가 다음과 같이 보이도록 체인에 추가하세요.

다른 전화로 문자 메시지를 자동으로 전달하는 방법
 program 
    .command('find <word>')
    .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) => {});

이 설정을 사용하면 세 가지 정의를 얻는 명령은 다음과 같습니다. ㅋㅋㅋ 예제는 다음과 같습니다:

 urbanary-cli find lol -e -c 3 

​또는 각 옵션의 긴 형식을 사용하면 다음과 같습니다.

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