سؤال

دعونا نقول في القضبان التطبيق لديك بعض الأحجار الكريمة التي يمكنك استخدامها في التطبيق الخاص بك (سوف نطلق عليهم "الابتدائية الأحجار الكريمة") و لديك vendored لهم قابلية.

دعنا نقول أن تلك "الابتدائية الأحجار الكريمة"تتطلب أيضا الأحجار الكريمة من تلقاء نفسها - سوف نطلق على هذه "الثانوية الأحجار الكريمة".

عندما كنت تقوم بإعداد البيئة الخاصة بك.rb, يجب أن تقول:

config.gem 'primary-gem'

أي من الأحجار الكريمة التي تستخدم مباشرة.

ولكن هل أنت أيضا بحاجة إلى أن أقول ...

config.gem 'secondary-gem'

حتى إذا كنت لا تستخدم الجوهرة صراحة في التطبيق الخاص بك ؟

أو هو ببساطة ما يكفي لتشمل جوهرة في vendor/gems الدليل على ذلك أن الحصول على انتقاؤها من قبل التطبيق الخاص بك ؟

هل كانت مفيدة؟

المحلول

في وقت نشر القضبان يعرف عن التبعيات الخاصة بك حتى إذا كنت ترغب في تجميد الأحجار الكريمة الخاص بك ثم يمكنك تشغيل

rake gems:unpack:dependencies

تجميد لهم في مورد الدليل.

في وقت التشغيل ومع انها الأحجار الكريمة وظيفة لتحميل انها تبعيات و عادة الأحجار الكريمة ، ملف config.جوهرة 'الأساسية' يجب أن تعمل.

نصائح أخرى

لا لا أو على الأقل لا يجب.كل جوهرة مواصفات ينبغي أن يشمل ذلك قائمة من التبعيات.عندما الأولية جوهرة تثبيت جواهر روبي تلقائيا سيتم تثبيت كل جوهرة الاعتماد على تتالي.

وبعبارة أخرى ، إذا كان يتطلب B يتطلب C+D, تحتاج فقط إلى كتابة

config.gem 'A'

عندما الأوامر

gem install A

تشغيل جواهر روبي سوف يعمل على حل جميع التبعيات وتثبيت لهم.يمكنك عرض كل التبعيات تشغيل (من القضبان المشروع)

rake gems

في بعض الأحيان, جوهرة المؤلف قد تنسى أن تشمل بعض جوهرة تبعيات في المواصفات.في هذه الحالة يجب أن يحدد لهم في البيئة الخاصة بك.rb إلى قوة الطلب إلى تثبيت لهم.طبعا, كما انها فكرة جيدة الاتصال جوهرة معيل حتى تتمكن من إصلاح المشكلة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top