[ruby-on-rails] Gemfile에서 로컬 젬을 어떻게 지정할 수 있습니까?

Bundler가 로컬 보석을로드하고 싶습니다. 그에 대한 옵션이 있습니까? 또는 gem 폴더를 .bundle 디렉토리로 이동해야합니까?



답변

나는 당신이 이것을 할 수 있다고 믿습니다.

gem "foo", path: "/path/to/foo"


답변

경로를 지정하는 것 외에도 (Jimmy가 언급 한대로) 다음 구성 옵션 을 사용하여 Bundler가 환경에 로컬 젬을 사용하도록 할 수도 있습니다.

$ bundle config local.GEM_NAME /path/to/local/git/repository

두 개의 gem 또는 gem과 rails 앱을 나란히 개발할 때 매우 유용합니다.

그러나 이것은 이미 의존성을 위해 git을 사용하고있을 때만 작동합니다.

# In Gemfile
gem 'rack', :github => 'rack/rack', :branch => 'master'

# In your terminal
$ bundle config local.rack ~/Work/git/rack

문서에서 볼 수 있듯이 .


답변

작업중 인 경우 git으로 로컬 gem을 참조 할 수도 있습니다.

gem 'foo',
  :git => '/Path/to/local/git/repo',
  :branch => 'my-feature-branch'

그런 다음 변경되면 실행합니다.

bundle exec gem uninstall foo
bundle update foo

그러나 모든 사람이이 두 단계를 수행해야하는지 잘 모르겠습니다.


답변

Rails 프로젝트에서 로컬 gem 저장소를 사용하려면 다음 단계를 따르십시오.

  1. gem 폴더가 git 저장소인지 확인하십시오 (gem 폴더에서 명령이 실행됩니다)

    git rev-parse --is-inside-work-tree
  2. 저장소 경로 가져 오기 (gem 폴더에서 명령이 실행 됨)

    git rev-parse --show-toplevel
  3. 레일스 애플리케이션에 대한 로컬 대체 설정

    bundle config local.GEM_NAME /path/to/local/git/repository

    여기서 GEM_NAMEgem의 이름이며 /path/to/local/git/repository명령의 출력입니다.2

  4. 응용 프로그램 Gemfile에서 다음 줄을 추가하십시오.

    gem 'GEM_NAME', :github => 'GEM_NAME/GEM_NAME', :branch => 'master'
  5. 달리기 bundle install는 다음과 같은 것을 제공해야합니다.

    Using GEM_NAME (0.0.1) from git://github.com/GEM_NAME/GEM_NAME.git (at /path/to/local/git/repository) 

    GEM_NAME보석의 이름은 어디에 있습니까?/path/to/local/git/repository 관점에서가2

  6. 마지막으로을 실행 bundle list하지 말고 gem list다음과 같이 표시되어야합니다.

    GEM_NAME (0.0.1 5a68b88)

    GEM_NAME보석의 이름은 어디에 있습니까


몇 가지 중요한 경우를 사용하여 관찰하고 있습니다.

Rails 4.0.2
ruby 2.0.0p247 (2013-06-27 revision 41674) [x86_64-linux]
Ubuntu 13.10
RubyMine 6.0.3
  • RubyMine로컬 보석을 외부 라이브러리로 표시하지 않는 것 같습니다 . 버그에 대한 자세한 정보는 여기여기 에서 찾을 수 있습니다.
  • 로컬 gem에서 무언가를 변경할 때, Rails 애플리케이션에로드되기 위해서는 stop/startRails 서버를 사용해야 합니다
  • versiongem을 변경하면 stopping/startingRails 서버에서 오류가 발생합니다. 이 문제를 해결하기 위해 레일 애플리케이션에서 다음 Gemfile과 같이 gem 버전을 지정합니다 .

    gem 'GEM_NAME', '0.0.2', :github => 'GEM_NAME/GEM_NAME', :branch => 'master'

답변

source : source: 'https://source.com', git repository (:github => 'git/url')및 local path로 gem을 참조 할 수 있습니다 :path => '.../path/gem_name'. 이 기사에서 Gemfile과 그 사용법에
대해 자세히 배울 수 있습니다 .


답변

당신도 지점을 원한다면 :

gem 'foo', path: "point/to/your/path", branch: "branch-name"


답변