Node로 아름답고 간단한 CLI 앱을 만드는 방법
12101 단어 nodejavascriptcliproductivity
명령줄 앱은 반복적인 작업을 패키징하는 깔끔한 방법입니다. 이것은 몇 가지 도구를 안내합니다
CLI 앱을 빌드하는 데 유용합니다.
Subscribe 받은 편지함에서 바로 최신 게시물을 받을 수 있습니다(누구보다 먼저).
아이디어 💡
병합/리베이스할 때 항상 문제를 일으키는 파일은 패키지 잠금입니다.
package-lock.json 파일을 삭제하고 재생성(npm install)하고 git 인덱스에 추가하는 간단한 유틸리티를 만드는 방법을 살펴보겠습니다.
https://github.com/HugoDF/fix-package-lock에서 찾을 수 있으며
npx fix-package-lock
를 사용하여 실행합니다.커맨드 라인으로 파이핑 🚇
시작하려면 "a better
execa
"로 설명되는 Sindre Sohruschild_process
의 패키지를 활용합니다. 다음 스니펫이 작동하려면 npm install --save execa
를 실행합니다.index.js
const execa = require('execa');
execa('ls').then(result => console.log(result.stdout));
node index.js
index.js
node_modules
package-lock.json
package.json
순차적 작업 다루기 ✨
package-lock
를 다시 생성하려면 먼저 삭제한 다음 npm install
를 실행해야 합니다.이를 위해 Listr 을 사용할 수 있으며 다음과 같은 작업을 수행할 수 있습니다.
실행
npm install --save listr
하고 다음과 같이 레버리지 Listr를 추가합니다.index.js
:const execa = require('execa');
const Listr = require('listr');
new Listr([
{
title: 'Removing package-lock',
task: () => execa('rm', ['package-lock.json'])
},
{
title: 'Running npm install',
task: () => execa('npm', ['install'])
},
{
title: 'Adding package-lock to git',
task: (ctx, task) =>
execa('git', ['add', 'package-lock.json'])
.catch(() => task.skip())
}
]).run();
이제
node index.js
의 출력은 다음과 같습니다.Listr은
execa
의 npm install
호출과 같이 Promise를 반환하는 장기 실행 작업입니다.Observable을 사용하여 변경되는 메시지를 표시할 수도 있습니다. 자세한 내용은 the Listr docs을 참조하십시오.
실행 가능한 JavaScript 파일 🦅
./index.js
대신 node index.js
를 사용하여 스크립트를 실행할 수 있는 것이 이상적입니다.이렇게 하려면 다음과 같은 UNIX 시스템에서 실행할 수 있는 파일이 필요합니다.
chmod +x
. 그래서chmod +x index.js
그런 다음 다음 해시뱅을 사용하여 파일 실행을 시도하는 방법을 시스템에 알려야 합니다.
#!/usr/bin/env node
index.js
에 추가하면 다음과 같이 됩니다.#!/usr/bin/env node
const execa = require('execa');
const Listr = require('listr');
new Listr([
{
title: 'Removing package-lock',
task: () => execa('rm', ['package-lock.json'])
},
{
title: 'Running npm install',
task: () => execa('npm', ['install'])
},
{
title: 'Adding package-lock to git',
task: (ctx, task) =>
execa('git', ['add', 'package-lock.json'])
.catch(() => task.skip())
}
]).run();
이제 다음을 사용하여 실행할 수 있습니다.
./index.js
패키지 바이너리 추가
npm에는 다음과 같이 사용할 수 있는
bin
필드가 있습니다(package.json
에서).{
"name": "beautiful-cli",
"version": "1.0.0",
"description": "A simple CLI",
"main": "index.js",
"bin": {
"fix-package-json": "./index.js"
}
"dependencies": {
"execa": "^0.10.0",
"listr": "^0.14.1"
}
}
npm 🚀에 게시
np
패키지, 매우 간단합니다.
힌트: 게시하려는 패키지에서 실행
npx np
전체 패키지는 https://github.com/HugoDF/fix-package-lock에서 찾을 수 있으며
npx fix-package-lock
를 사용하여 실행합니다.Subscribe 받은 편지함에서 바로 최신 게시물을 받을 수 있습니다(누구보다 먼저).
Reference
이 문제에 관하여(Node로 아름답고 간단한 CLI 앱을 만드는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/hugo__df/how-to-make-beautiful-simple-cli-apps-with-node-c1b텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)