2017-12-21 6 views
1

저는 Thor를 사용하여 Ruby로 CLI 젬을 구축하고 있습니다. 나는 rake build을 실행하고 보석을 로컬에 설치하는 작업 인 rake install을 실행합니다. 그러나 명령 줄에서 실행하려고하면 명령을 찾을 수 없습니다. 보석은 smokestack이므로 이론적으로는 이 설치되면을 터미널에서 실행할 수 있어야합니다.Ruby CLI 수동 테스트

구조 :

├── CODE_OF_CONDUCT.md 
├── Gemfile 
├── Gemfile.lock 
├── LICENSE.txt 
├── README.md 
├── Rakefile 
├── bin 
│   ├── console 
│   ├── setup 
│   └── smokestack 
├── lib 
│   ├── smokestack 
│   │   ├── build.rb 
│   │   ├── cli.rb 
│   │   └── version.rb 
│   └── smokestack.rb 
├── pkg 
│   └── smokestack-0.1.0.gem 
├── smokestack.gemspec 
└── test 
    ├── build_test.rb 
    ├── smokestack_test.rb 
    └── test_helper.rb 

빈/굴뚝 :

#!/usr/bin/env ruby -wU 

require 'smokestack' 

Smokestack::Cli.start(ARGV) 

당신은 나무에서 나는 rake install을 실행했을 때의 pkg 폴더를 볼 수 있습니다. zsh: command not found: smokestack

나는 또한 gem install --local ~/path/to/gem/pkg/gem.gem 결과 시도했습니다 :

Successfully installed smokestack-0.1.0 
Parsing documentation for smokestack-0.1.0 
Done installing documentation for smokestack after 0 seconds 
1 gem installed 

이를 그때 오류를 내 터미널에서 smokestack을 실행하고 얻을

smokestack 0.1.0 built to pkg/smokestack-0.1.0.gem. 
smokestack (0.1.0) installed. 

: 나는 것을 실행할 때 다음은 결과입니다 동일한 '명령을 찾을 수 없음 오류'가 발생합니다.

질문 개발 중에이 CLI를 로컬에서 테스트하여 테스트 해 보려면 어떻게해야합니까?

이상적으로 현재 프로젝트와 상호 작용하므로 자체 디렉토리에 bundle exec bin/smokestack을 실행하면 필요한 결과가 제대로 산출되지 않습니다. 그것은 어쨌든 시스템 CLI가 있어야합니까?

Here is the repo 필요한 경우 추가 컨텍스트.

답변

1

두 가지 일이 잘못되었습니다. 먼저 번들을 /bin에서 /exe으로 이동했습니다. 참고로 [이 기사 (http://bundler.io/blog/2015/03/20/moving-bins-to-exe.html)를 참조하십시오.

bin/smokestackexe/smokestack으로 옮겼습니다.

을 실행하여 .gemspec 개의 파일에 보석 파일 목록이 표시되도록해야합니다. 모든 것이 완료되었으므로 모든 것이 제대로 작동하는 것처럼 보입니다.