Study
[Node.js] CLI 명령어 사용하기
안자두
2023. 1. 6. 18:33
CLI 명령어 추가하기
Node.js에는 cli 명령어를 추가할 수 있다.
package.json의 bin에 명령어와 해당 명령어 입력 시, 실행될 로직을 추가하면 된다.
{
...,
"bin": {
"[명령어]": "[실행 로직]"
}
}
예를 들어, 아래와 같이 test.js 실행 파일을 생성하고 설정한 'test'라는 명령어를 통해 실행한다고 해보자.
#! /usr/bin/env node
console.log(process.argv);
- test.js
{
"bin": {
"my-test": "test.js"
}
}
- package.json
package.json을 수정한 후에는 `npm -g i` 명령어로 업데이트된 package.json을 적용해주어야 한다.
등록한 명령어를 사용해 보자.
$ my-test test1 test2 test3
- bash에 명령어 입력하기
위와 같이 명령어를 입력하면 아래와 같은 결과가 도출된다.
# 첫 번째와 두 번째는 node와 file 실행 경로, 이후부터 입력한 값이 들어옴
[
'C:\\Program Files\\nodejs\\node.exe',
'C:\\실행 경로',
'test1',
'test2',
'test3'
]
- 실행 결과
예제
이제 script를 수정하여 프로젝트에 새로운 파일을 생성하는 에제를 생성해 보자.
#! /usr/bin/env node
import { existsSync, mkdirSync, writeFileSync } from "fs";
// 명령어를 두 개 이하로 작성했을 경우,
if (process.argv.length < 3) {
console.log("project 이름을 작성해주세요!");
process.exit(1);
}
// 명령어를 세 개 이하로 작성했을 경우,
if (process.argv.length < 4) {
console.log("file 이름을 작성해주세요!");
process.exit(1);
}
const PROJECT_NAME = process.argv[2];
const FILE_NAME = process.argv[3];
(async () => {
try {
const isExistProject = existsSync(PROJECT_NAME);
// 이미 존재하는 프로젝트일 경우, 해당 이름으로 된 파일이 없으면 생성, 있으면 error message
if (isExistProject) {
process.chdir(PROJECT_NAME); // === cd PROJECT_NAME
const isExistFile = existsSync(FILE_NAME);
if (isExistFile) {
console.log(
`${FILE_NAME}는 이미 존재하는 파일입니다.`
);
EXIT();
} else {
writeFileSync(FILE_NAME, 'new file!');
console.log(`${PROJECT_NAME}을 생성했습니다!`);
}
} // 존재하지 않는 프로젝트일 경우, 프로젝트 생성 후, 파일 생성
else {
mkdirSync(PROJECT_NAME);
process.chdir(PROJECT_NAME);
writeFileSync(FILE_NAME, 'new file!');
console.log(`${PROJECT_NAME}을 생성했습니다!`);
}
} catch (error) {
console.log(error);
}
})();
- 새로운 파일을 생성하는 script 예제
등록한 'my-test'라는 명령어로 실행시킨 결과이다.
새로운 project와 file이 잘 생성된 것을 확인할 수 있다.
이 cli 명령어를 통해 반복적인 작업들을 단순화시킬 수 있을 것 같다.
728x90