Node.js에서 명령줄 앱 만들기: 인수 구문 분석

이 기사는 의 연속입니다. 따라서 계속하기 전에 1부의 단계를 따랐는지 확인하십시오. :)

1부에서는 노드 앱을 CLI처럼 실행하는 방법에 대해 배웠습니다. 이 게시물에서는 명령줄 앱에서 인수 구문 분석에 대해 알아봅니다.

CLI에서 인수 구문 분석이란 무엇입니까?


gityarn 와 같은 CLI를 사용한 적이 있다면 CLI 명령의 접미사로 --flag를 전달해야 한다는 것을 알고 있습니다.

예를 들어 npm install . 여기서 install는 노드 패키지 관리자에게 패키지를 설치하도록 지시하는 npm 명령에 전달된 인수입니다.

마찬가지로 CLI가 제대로 작동하려면 미리 정의된 다른 인수('매개변수'라고도 함) 집합이 필요할 수 있습니다. CLI에서 다양한 작업과 기능을 수행하는 데 자주 사용됩니다.

Node.js의 인수 구문 분석


  • index.js ...
  • 라는 파일을 생성합니다.
  • 파일에 아래 코드를 붙여넣습니다.

  • console.log(process.argv)
    


  • 이제 터미널에서 다음 명령을 실행하여 주어진 출력을 얻습니다.

  • $ node index.js wow this is an argument
    
    # Output 👇
    
    [ 'node',
      '/home/username/Desktop/index.js',
      'wow',
      'this',
      'is',
      'an',
      'argument' ]
    


    이제 출력을 사용하여 전달된 인수를 감지하고 그에 따라 CLI가 작동하도록 할 수 있습니다.

    더 나은 인수 구문 분석


    process.argv 어떤 인수가 전달되는지 알기 위한 가장 기본적인 코드 라인입니다.

    CLI에서는 사용자가 특정 작업을 수행하기 위해 명령 조합을 사용하도록 해야 합니다. 예를 들어 npm install -g bulk-mail-cli . 여기서 install는 인수로, -g ( --global )는 플래그로 전달됩니다.

    CLI에서 모든 조합이 수행할 작업을 계산하는 것은 많은 작업이 될 수 있습니다. 따라서 인수 구문 분석 및 탐지를 위해 검증된 라이브러리를 사용하는 것이 좋습니다.

    인수 및 플래그를 구문 분석하는 라이브러리.



  • Commander (이쪽을 추천합니다)
  • Minimist
  • Meow

  • 사령관


    Commander가 어떻게 작동하는지 봅시다. 1부에서는 데모 CLI 프로젝트를 만들었습니다. 동일한 코딩 프로젝트의 index.js 코딩을 계속하십시오.

    The tutorial below will be relevant only if you have read Part 1 of the series.



    모듈을 정의합니다.

    const commander = require('commander')
    


    프로그램에서 사용하려면 다음 코드를 붙여넣으세요...

    commander
        .version('v0.0.1')
        .description('This is a dummy demo CLI.')
        .option('-n, --name <type>', 'To input a name')
        .option('demo', 'To output demo')
        .parse(process.argv)
    


    위의 코드 줄은 이제 --version , -n , --name , demo 인수를 구문 분석하고 읽는 데 도움이 됩니다.

    인수 읽기



    인수를 읽으려면 이제 다음을 수행하면 됩니다.

    // Runs only if `name` argument is passed with a `<type>`...
    if (commander.name) console.log(`Your name is ${commander.name}.`)
    
    // Runs only if `demo` argument is passed...
    if (commander.demo) console.log(`This is a DEMO.`)
    


    사용해 보세요!



    1부에서 계속 진행했다면 package.json가 이미 생성된 것입니다. cd 코드가 저장된 디렉토리에서 터미널에서 다음을 실행하십시오 ...

    $ thisDemoCli demo
    This is a DEMO.
    
    $ thisDemoCli --name "Kumar Abhirup"
    Your name is Kumar Abhirup.
    
    $ thisDemoCli --version
    v0.0.1
    


    만세! 이제 인수를 성공적으로 구문 분석하고 이것으로 뭔가를 하고 있습니다!

    이 기사가 Node.js에서 명령줄 앱이 작동하는 방식에 대한 기본 사항을 이해하는 데 도움이 되기를 바랍니다.


    나에 대해서



    저는 매일 새로운 것을 계속 배우고 있는 인도의 16세 JavaScript React 개발자 Kumar Abhirup입니다.

    My personal website and portfolio 🖥️

    더 나은 방법과 이 기사를 개선하기 위한 제안 아래에 댓글을 작성하십시오. :)

    좋은 웹페이지 즐겨찾기