Node제 CLI로 「BLEACH」의 시해・비해를 확인하고 싶다!
15341 단어 npmcliTypeScriptNode.js
"blch"명령. blch - npm
node에 의한 cli 작성 ~ 공개까지.
TL;DR
npm install -g blch
에서!할 수 있는 일
*모든 등장 인물을 망라하고 있지 않습니다
*기본적으로 파면편까지의 등장 인물을 취급합니다만, 일부 해해는 천년 혈전편 이후로 발현한 것도 취급하고 있습니다
*10날(에스파다)의 경우는 시해·비해가 아니라 귀날을 취급합니다
인물 추가·편집·수정은 이쪽으로부터 자유롭게 해 주어도 상관 없습니다.
htps : // / cs. 오, ぇ. 이 m/sp레 d ㎇ ts/d/1에7Ms9sX2m1ぅ_4r20아기ぃ←FgByRQp1s93
이 데이터로부터 CSV를 작성해, 해당하는 것을 정형해 표시하는 구조가 되고 있습니다.
*스프레드시트 갱신되면 커맨드도 마음대로 갱신하는 구조가 되어 있지 않습니다
* CLI를 만들어 공개까지 해보고 싶었을 뿐이므로 만들기는 거칠습니다 (응답 속도 등 고려하지 않았거나)
CLI 소개편
사람 목록 표시 - human
캐릭터를 나열합니다.
옵션 지정에 의해, 호정 13대, 가면의 군세(바이저드), 10날(에스파다)등의 리스트 표시를 할 수 있습니다.
*v1.1.0부터 완현술자(풀 브링거)가 추가되었습니다.
blch human --gotei13
개요 보기 - tldr
등장 인물의 해호·참척도·비해를 표시합니다.
blch tldr 黒崎一護
몹시 빚지고 있다
tldr
커멘드로부터 착상을 얻고 있습니다.shell 명령의 설명과 사용법을 몇 줄로 소개해 줍니다.
brew install tldr
에서!htps : // 기주 b. 코 m / tldr - 뿌리 s / tldr
시해·비해 - echo
echo 명령을 사용하여 시해 또는 비해를 수행합니다.
blch echo --shikai 朽木白哉
blch echo --bankai 朽木白哉
명령 조합
blch human -a | fzf | xargs blch tldr
# もしくは(*fish記法です)
blch tldr (blch human -a | fzf)
덧붙여서 로그인 쉘은 fish를 사용하고 있습니다만 슈퍼 추천입니다.
로그인 쉘을 fish로 해보기 - Qiita
도움말 표시
각 명령에
-h
를 붙이면 도움말을 볼 수 있습니다.❯❯❯ blch hu -h
Usage: blch human|hu [options]
Output human names
Options:
-a, --all List all
-g, --gotei13 List gotei 13
-e, --espada List espada
-v, --visored List visored
-k, --karakuracho List karakuracho
-f, --fullbringer List fullbringer
-h, --help output usage information
Examples:
$ blch human --gotei13
$ blch hu -g
CLI 작성편
commander
node.js에서 CLI의 완벽한 솔루션입니다.
라고 써 있습니다. 실제로 사용하기 쉬웠습니다. ↓
commander - npm
commander의 사용법을
blch human
명령을 예를 들어 설명해 보겠습니다.Typescript입니다.
index.ts
import * as program from 'commander';
=====
// バージョン情報の登録
// blch -V or blch --version でバージョンが確認できる
program
.version('0.0.1', '-V, --version')
// blch humanコマンドの作成
program
.command('human') // コマンド名の登録 ここで登録したものを`blch ~`の形で使える
.alias('hu') // alias登録により、`blch hu`と打つことも可能
.description('Output human names') // help用
// optionの登録(省略可能)
.option("-a, --all", "List all")
.option("-g, --gotei13", "List gotei 13")
.option("-e, --espada", "List espada")
.option("-v, --visored", "List visored")
.option("-o, --other", "List other")
.action( async (cmd, options) => {
/**
`blch human --gotei13`を実行した場合
`cmd`に`gotei13`のBooleanパラメータがtrueで追加される
`gotei13`は上記optionで設定した`--gotei13`の部分に該当する
`blch human --gotei13 4`を実行した場合
`blch human --gotei13`を実行した時とcmdの内容は同じ
optionsは['4']となっている
つまり`--gotei13 4`で指定したものが文字列として配列に入る
今回のblchコマンドでは考慮していないが、
オプションの重ねがけも可能。
`blch -g -e`とするとcmdの`gotei13`も`espada`もtrueになる
また、`--gotei13 4 5`とオプションに入れると
optinosは、`['4', '5']`となる
以下から`cmd`, `options`の値で条件分岐し出力する処理
*/
// csvファイルから全リストを取得
const dataList: Human[] = await files.getHumanDataList()
let targetCode: GroupCode = 'all'
if (cmd.gotei13) {
targetCode = 'gotei13'
}
if (cmd.espada) {
targetCode = 'espada'
}
if (cmd.visored) {
targetCode = 'visored'
}
if (cmd.other) {
targetCode = 'other'
}
// オプションから対象を取得
const humans = findHumansByGroupCode(dataList, targetCode, options)
if (humans.length === 0) {
console.log('No matching')
return
}
// ターミナルへ出力
humans.forEach(human => console.log(human.name))
})
// helpの定義
.on('--help', function() {
console.log('\n Examples:')
console.log()
console.log(' $ blch human --gotei13')
console.log(' $ blch hu -g')
console.log()
})
// blch humanコマンド以外を作成する場合は同じように追加していく
program
.command('tldr <target>')
======
// 最後にターミナル引数をparseする処理
program.parse(process.argv)
빨리 명령을 만들 수 있습니다.
chalk
chalk - npm
터미널 출력에 색을 칠하거나 굵게 표시할 수 있습니다.
chalk를 사용하면 맛있는 출력이됩니다.
이번에 이 2개 정도밖에 CLI용의 패키지는 사용하고 있지 않습니다만, Node의 CLI에는 그 밖에도 사용할 수 있는 것들은 여러가지구나 하는 것을 알았습니다.
이쪽은 git의 package 해결 주위에서 버그라고 빌드할 수 없었지만 참고가 되었습니다.
Build a JavaScript Command Line Interface (CLI) with Node.js — SitePoint
CLI 공개편
거의 이것에 따라 갔기 때문에 참조 만 붙입니다.
npm에 공개하는 것은 생각보다 쉬웠습니다.
htps : // 이 m / Tsuto Munaka Muura /
요약
Reference
이 문제에 관하여(Node제 CLI로 「BLEACH」의 시해・비해를 확인하고 싶다!), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/sbleru/items/e0b349ef6a35e4793f96텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)