Node.js에서 명령줄 앱 만들기: 인수 구문 분석
6475 단어 tutorialjavascriptnpmnode
1부에서는 노드 앱을 CLI처럼 실행하는 방법에 대해 배웠습니다. 이 게시물에서는 명령줄 앱에서 인수 구문 분석에 대해 알아봅니다.
CLI에서 인수 구문 분석이란 무엇입니까?
git
및 yarn
와 같은 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 (이쪽을 추천합니다)
사령관
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 🖥️
더 나은 방법과 이 기사를 개선하기 위한 제안 아래에 댓글을 작성하십시오. :)
Reference
이 문제에 관하여(Node.js에서 명령줄 앱 만들기: 인수 구문 분석), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/kumareth/creating-a-command-line-app-in-node-js-argument-parsing-40ph
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(Node.js에서 명령줄 앱 만들기: 인수 구문 분석), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/kumareth/creating-a-command-line-app-in-node-js-argument-parsing-40ph텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)