मेरे पास एक सिनात्रा एप्लिकेशन है जिसके लिए एक और मणि की आवश्यकता है जिसे मैं स्थानीय रूप से विकसित कर रहा हूं। मुझे विकास के दौरान अपने स्थानीय मणि कोड का उपयोग करने के लिए बंडलर को कॉन्फ़िगर करने में समस्या हो रही है लेकिन उत्पादन में मेरा वेंडर्ड मणि कोड है।विकास के दौरान विभिन्न मणि स्रोतों का उपयोग करने के लिए बंडलर/जेमफाइल को कैसे कॉन्फ़िगर किया जा सकता है?
आदर्श रूप में मैं इस तरह कुछ कर सकते हैं, लेकिन आप एक ही Bundler मणि दो बार निर्दिष्ट करने के लिए अनुमति नहीं देता:
# Doesn't work:
group :development do
gem 'awesome', :path => "~/code/awesome"
end
group :production do
gem 'awesome', :path => "vendor/gems/awesome-0.0.1"
end
इस बीच में मैं मैन्युअल रूप से मणि & मणि स्रोत को अद्यतन करने vendoring का सहारा लिया गया है जेमफाइल में हर बार जब मैं तैनाती करता हूं, जो काफी परेशानी होती है। मेरे कार्यप्रवाह यह है:
- विकास के दौरान अपने स्थानीय मणि को इंगित करें (
gem 'awesome', :path => "~/code/awesome"
) - मणि vendored को इंगित करने में
vendor/gems
- अद्यतन Gemfile तैनात करने के लिए, खोल मणि तैयार जब (
gem 'awesome', :path => "vendor/gems/awesome-0.0.1"
) - भागो
bundle install
(Gemfile.lock अद्यतन करने के लिए) - तैनात कोड
- वापसी कदम 1.
क्या परेशानी है! मैं अपने वर्तमान सेटअप को स्वचालित करने के लिए बस रेक कार्यों को लिखने से कुछ क्लीनर करना चाहता हूं।
इस स्थिति के लिए सबसे अच्छा कार्यप्रवाह क्या है?
मैंने कोशिश की कि क्या इस अनुच्छेद पहले पता चलता है, और अधिकांश भाग के लिए यह ठीक है। समस्या यह है कि जब मैं तैनात करता हूं, Gemfile.lock मेरे स्थानीय मणि को संदर्भित करता है (उसके पिछले दो कोड नमूने देखें)। मुझे लगता है कि मैं स्थानीय रूप से उत्पादन रत्न स्थापित कर सकता हूं और फिर तैनात कर सकता हूं, या पूरी तरह से गिट से Gemfile.lock को हटा सकता हूं ... लेकिन मुझे यकीन नहीं है कि इनमें से कोई भी विकल्प सबसे अच्छा तरीका है। –
हाँ मैं एक ही चीज़ को पूरा करना चाहता हूं लेकिन ऐसा लगता है कि ऐसा करने का कोई साफ तरीका नहीं है। –