inflearn logo
강의

Course

Instructor

Node.js Textbook - From Basics to Project Practice

Using commander

질문입니다. CLI

427

dodocoding

9 asked

0

commander 사용에 애러가 나는데 도움좀 주실수 있나요??

#!/usr/bin/env node
const program = require("commander");

program.version("0.0.1", "-v, --version").usage("[options]");

program
  .command("template <type>")
  .usage("--name [name] --path [path]")
  .description("템플릿을 생성합니다.")
  .alias("tmpl")
  .option("-n, --name [name]", "파일명을 입력하세요.", "index")
  .option("-d, --directory [path]", "생성 경로를 입력하세요", ".")
  .action((type, options) => {
    console.log(type, options);
  });
program.command("*", { noHelp: true }).action(() => {
  console.log("해당 명령어를 찾을 수 없습니다.");
  program.help();
});

program.parse(process.argv);
C:\Users\Dos\Desktop\lecture\zerocho_node\node_cli\node_modules\commander\index.js:910
        this.emit('command:' + this.name(), operands, unknown);
                                    ^

TypeError: this.name is not a function
    at Command._parseCommand (C:\Users\Dos\Desktop\lecture\zerocho_node\node_cli\node_modules\commander\index.js:910:37)
    at Command._dispatchSubcommand (C:\Users\Dos\Desktop\lecture\zerocho_node\node_cli\node_modules\commander\index.js:860:18)
    at Command._parseCommand (C:\Users\Dos\Desktop\lecture\zerocho_node\node_cli\node_modules\commander\index.js:877:12)
    at Command.parse (C:\Users\Dos\Desktop\lecture\zerocho_node\node_cli\node_modules\commander\index.js:712:10)
    at Object.<anonymous> (C:\Users\Dos\Desktop\lecture\zerocho_node\node_cli\command.js:21:9)
    at Module._compile (internal/modules/cjs/loader.js:955:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:991:10)
    at Module.load (internal/modules/cjs/loader.js:811:32)
    at Function.Module._load (internal/modules/cjs/loader.js:723:14)
    at Function.Module.runMain (internal/modules/cjs/loader.js:1043:10)

nodejs mongodb mysql javascript

Answer 8

0

nrg13921228

확인했습니다 책 잘 보고 있습니다 감사합니다 :)

0

zerocho

https://github.com/ZeroCho/nodejs-book/tree/revised/ch14

제 개정판 코드 참고하시면 될 것 같습니다. triggered = true도 제거되었습니다.

0

nrg13921228

추가적으로 commander현재 버전을 받으면 책에서 inquirer를 사용해서 cli만 쳐서 inquirer를 실행시키는 부분도 되지 않습니다. 커맨드가 없으면 자동으로 help를 실행시키도록 해놓았네요. github에서 활용된 버전으로 사용하면 문제없이 돌아갑니다

npm홈페이지에서 보면 program.help를 실행하면 실행 뒤 자동으로 exit한다고 나오고, program.help뒤에 console.log를 넣어봐도 출력이 안되는 것으로 봐서 바로 종료되는것 같은데 이러면 triggered = true를 빼도 되지 않나요?

program.command("*", { noHelp: true }).action(() => {
  console.log("해당 명령어를 찾을 수 없습니다");
  program.help();
});

0

zerocho

네네 커맨더의 버전 업그레이드로 인해서 name 옵션을 더 이상 사용하면 안 됩니다.

0

nrg13921228

option에서 name이라는 인자를 사용한게 충돌한거 같은 느낌입니다. 저도 코드를 뜯어본게 아니라 확신은 못하겠지만..

아래처럼 바꾸고 cli template html -d public/html -fn new으로 실행하니 해결됐습니다

.option("-fn, --filename <name>""파일명을 입력하세요""index")

0

catsbi

같은에러가 지금 저도 발생하고 있네요

0

basilstatue0i0668

같은 에러입니다. 


조현영님 github
https://github.com/ZeroCho/nodejs-book/blob/master/ch14/14.2/node-cli/command.js

코드 그대로 사용해도 같은 오류가 나네용

0

zerocho

명령어를 뭘 치셨나요??

실제 서비스에서도 cluster를 사용하나요?

1

313

2

캐싱에 관하여

0

279

3

salt를 실무에서 사용할때 항상 randomBytes로 만들어줘야 하나요?

0

347

1

게시물 올리기 오류

0

408

1

캐슁 이후 로그인창

0

266

1

kakao passport 질문있습니다.

0

493

3

global객체 공유 질문드립니다.

1

417

1

서버가 죽어버리네요

0

1047

8

포링키 문제..

0

234

2

커넥션 플래시 설치문제

0

216

2

익스프레스 제너레이터? 설치문제

0

2585

6

redis 질문입니다.

0

305

1

9장 세션을 DB에 저장시 리다이렉션 오류 발생

0

874

8

프레임워크 선택에 관하여 질문이 있습니다.

0

300

3

시퀄라이즈 질문입니다 ! !

0

588

1

리뉴얼 강의 12강 socket.io에서 req.session접근 관련 질문

0

922

6

oAuth 질문입니다.

0

356

3

GCP 질문입니다.

0

366

1

Passport 모듈 로그인 구현관련

0

720

6

카카오 로그인 관련 질문입니다!!

0

606

4

스스로 해보기 10-16 nunjuncks 질문있습니다

0

499

5

제로초님 HTTP 완벽가이드 추천해주신거 너무 잘 읽었습니다.

0

317

2

gif채팅방 nunjucks관련 질문입니다!

0

337

3

현영님 몽고db관련 질문입니다.

0

233

3