いくつかの内部プロジェクト用に単純なthor
ベースのジェネレータを構築していて、正しいディレクトリからbundle install
を実行できないようです。バンドルインストールが間違ったディレクトリから実行される
新しい[APP_NAME]機能を実行すると、はにディレクトリとファイルを作成し、bundle install
を実行してアプリケーションに必要な宝石をインストールします。
ジェネレータ関数のソース:
def create
puts "Creating application #{name}"
directory 'application', "#{name}"
Dir.chdir("#{Dir.pwd}/#{name}") do
puts `bundle install`
end
end
そして、これは、メソッドを作成呼び出すコマンドを実行しているから、コンソール出力:あなたが見ることができるように
$ bundle exec bin/my_gem new test_app
Creating application test_app
create test_app
create test_app/Gemfile
create test_app/Guardfile
create test_app/README.md
create test_app/app/controllers
create test_app/app/helpers
create test_app/app/models
create test_app/app/views
Using thor (0.14.6)
Using my_gem (0.0.1)
Using bundler (1.1.3)
Your bundle is complete! Use `bundle show [gemname]` to see where a bundled gem is installed.
は、それがbundle install
を実行しているが、それはですtest_app
ディレクトリ(guard
、guard-coffeescript
、)とは対照的に、現在のディレクトリ(thor
、bundler
、my_gem
)で実行してくださいなど)。
Gemfile
Guardfile
README.md
app
と
/Users/davidlumley/Development/Gems/my_gem/test_app
ない、それは何の違いになりますが、私はルビーを管理するためにRVMを使用している場合を確認します。このようls
やpwd
などの他のコマンドを実行している
は、期待される結果を与えます。
RVMを使用していますか。 – Kashiftufail
"違いがあれば分かりませんが、ルビーを管理するのにRVMを使います。" - はい: – djlumley
はい、それはルビーマンギングですが、rvmの助けを借りてgemsetを作成し、gemsetディレクトリを使用してgemをインストールしてください。今直面した問題はありません。 – Kashiftufail