위치 인수를 올바르게 구성하는 방법을 찾을 수 없습니다. 이 코드가 있습니다Yargs - 생략 된 위치 인수에 대한 사용자 정의 오류 메시지 제공 방법
#!/usr/bin/env node
const create = (argv) => {
console.log('create component with name:', argv.name)
}
const createBuilder = (yargs) => {
yargs.positional('name', {
desc: 'Name of the new component',
})
}
/* eslint-disable no-unused-expressions */
require('yargs')
.command({
command: 'create <name>',
desc: 'Create a new component',
builder: createBuilder,
handler: create,
})
.demandCommand(1, 'A command is required')
.help()
.argv
을 나는 사용자가 생성 명령 다음에 이름을 지정하지 않는 경우 사용자 지정 오류 메시지를 제공하고 싶습니다. 내가 대신 demandCommand 및 demandOption ( 의 각을 사용하는 것이 좋습니다
:
그것은 그렇게하는 방법을 문서에서 나에게 분명하지 않다, 그리고 github의 문제를 겪고있는 동안 나는이 댓글 (# 928)을 가로 질러왔다 이는 문서화되어있다).
이 별도로
내가
.demandCommand(1, 'You need to provide name for the new component')
또는
.demandOption('name', 'You need to provide name for the new component')
하지만 운이없는
와 조합의 모든 종류의 시도했습니다 당신은 위치 인수와 플래그 인수를 구성 할 수 있습니다. 아무도 이것을하는 방법을 아는가?
감사합니다.하지만 yargs API를 사용하는 솔루션보다 해결 방법이 더 많습니다. 필자가 보는 문제는 -h가 다음과 같이 표시된다는 것입니다 :'create [fileName] create new component' fileName을 선택 사항으로 표시하고 통신하고 싶습니다. – devboell
두 번째 예제 * 문제가 해결 되었습니까? – Ovior
사실, 여전히 'undefined'라는 핸들러를 호출 할 것이기 때문에이를 처리해야 할 것입니다. 또한 다른 오류로 인해'fail'이 호출 될 수 있는지 알지 못하므로 코드를 추가해야합니다. 또한 console.log/error를 통한 사용자 피드백은'demandCommand' 및'demandOption'에 의해 반환 된 메시지와 일치하지 않습니다. 'demandPositional'과 같은 것을 기대하고 있었는데 ... github에서 문제를 열어 볼 수 있습니다. 그래도 도움을 주셔서 감사합니다! – devboell