2015-10-10 12 views
6

चल मेरे रेल ऐप्लिकेशन में के बारे में चेतावनी इस चेतावनी हो रही है। क्या यह चेतावनी अनदेखा करना ठीक है?बंडलर का उपयोग नहीं जब गार्ड init

source 'https://rubygems.org' 

gem 'rails', '4.2.4' 
gem 'pg' 
gem 'sass-rails', '~> 5.0' 
gem 'uglifier', '>= 1.3.0' 
gem 'coffee-rails', '~> 4.1.0' 
gem 'jquery-rails' 
gem 'turbolinks' 
gem 'jbuilder', '~> 2.0' 
gem 'sdoc', '~> 0.4.0', group: :doc 

group :development, :test do 
    gem 'rspec-rails', '3.3.3' 
    gem 'guard-rspec', require: false 
    gem 'spring-commands-rspec' 
    gem 'byebug' 
end 

group :development do 
    gem 'web-console', '~> 2.0' 
    gem 'spring' 
end 

group :test do 
    gem 'capybara', '2.5.0' 
end 

#custom gems 
gem 'puma' 
gem 'bootstrap-sass', '~> 3.3.5' 
gem 'devise', '~> 3.5.2' 
+0

क्या आपने 'बंडल इंस्टॉल 'कमांड चलाया था? – pangpang

+0

हां मैंने किया। घटनाक्रम यह चेतावनी दिखा रहा है सब कुछ ठीक काम कर रहा है। – Abhilash

+0

'गार्ड इनिट आरएसपीसी' आपके गार्डफाइल को गार्ड परिभाषा जोड़ देगा, लेकिन गार्डफाइल [गार्ड] (https://github.com/guard/guard#readme) द्वारा उत्पन्न होता है, मुझे लगता है कि आपको अपने रत्न में गार्ड मणि जोड़ना चाहिए। – pangpang

उत्तर

11

आप guard init rspec चलाते हैं, तो यह विश्व स्तर पर guard-rails स्थापित का उपयोग करेगा:

यहाँ मेरी Gemfile है। अपने Gemfile के माध्यम से स्थापित एक को चलाने के लिए, bundle exec guard init rspec का उपयोग करें। यह भी the documentation में अनुशंसित है।

README से:

यह है कि आप हमेशा त्रुटियों से बचने के Bundler के माध्यम से गार्ड को चलाने के लिए महत्वपूर्ण है।

तो लाइन के नीचे मुद्दों से बचने के लिए, शायद यह चेतावनी गंभीरता से लेना सबसे अच्छा है।

+0

इसे इंगित करने के लिए धन्यवाद। जैसा कि मैंने पहले ही गार्ड इनिट आरएसपीईसी का उपयोग करके गार्डफाइल बनाया है, क्या मैं बस गार्ड फ़ाइल को हटा सकता हूं और बंडल exec का उपयोग कर पुन: उत्पन्न कर सकता हूं ...? – Abhilash

+0

यह ठीक होना चाहिए @ ABHILASHV.R।एक उदाहरण जब यह समस्याएं पैदा कर सकता है जब आपके ग्लोबल जेम का संस्करण और प्रोजेक्ट के लिए निर्दिष्ट एक अलग होता है, तो हमेशा 'बंडल निष्पादन' उपसर्ग के साथ कमांड चलाने के लिए यह एक अच्छा अभ्यास है। – Drenmi

+0

महान .. धन्यवाद .. – Abhilash

1

एक और अधिक तकनीकी जवाब:

वहाँ 3 तरीके जवाहरात अपने रूबी के लिए चुना जा सकता है (या रेल) ​​परियोजनाओं हैं:

  1. वे आपके सिस्टम पर स्थापित कर रहे हैं के रूप में (वातावरण चर को देखकर जैसे $GEM_HOME), उदाहरण के लिए guard init rspec आपके $GEM_HOME में guard और guard-rspec देखेंगे। आमतौर पर रूबीजम्स आपके द्वारा इंस्टॉल किए गए नवीनतम स्थापित संस्करणों का उपयोग करेगा (हमेशा आप जो चाहते हैं) नहीं।

  2. यदि आप Bundler है, bundle exec guard init rspec अपने जवाहरात अपने Gemfile.lock में सूचीबद्ध संस्करणों में लोड करने के लिए कारण होगा। यह भी आप अनुप्रयोग के साथ बंडल (जैसे .bundle निर्देशिका) या यहां तक ​​कि डाउनलोड किया है और GitHub से अद्यतन (कहीं भी अपने Gemfile में :path विकल्प का उपयोग कर) अन्य फ़ोल्डर से सीधे जवाहरात लोड करने के लिए (:github, :branch, आदि विकल्पों का उपयोग कर) की अनुमति देता है।

  3. यदि आपके पास रूबीजम्स का हालिया संस्करण है, तो यह आपके रत्नों को Gemfile.lock से भी लोड कर सकता है। लेकिन केवल तभी यदि आपके पास $RUBYGEMS_GEMDEPS वातावरण ठीक से स्थापित है। यह बंडलर की तरह काम करता है (यह आपके Gemfile.lock पढ़ता है), सिवाय इसके कि इसमें सभी सुविधाएं नहीं हैं (जैसे कि गिटहब रिपोजिटरी से रत्न लोड करना)।

सामान्य में, अगर अपनी परियोजना एक Gemfile है, यह सबसे अच्छा Bundler उपयोग करने के लिए है, क्योंकि यह सुनिश्चित करें कि सभी जवाहरात के सभी संस्करणों आप क्या उम्मीद से मिलान कराने के बनाता है।

संबंधित मुद्दे