Quelle est l'utilisation de Gemfile
dans les rails?
Comment utiliser Gemfile
?
Au cours de votre développement dans Rails, vous voudrez parfois fournir certaines fonctionnalités dont vous avez besoin, mais vous ne savez pas comment procéder ou vous ne souhaitez pas les implémenter vous-même, car de nombreuses son travail a été mis au point par des développeurs talentueux.
Ces développements dont vous pourriez avoir besoin (authentification d'utilisateur, système de messagerie, gestionnaires d'actifs, géolocalisation, système de pagination, liens vers des services extérieurs tels qu'Amazon AWS et Rails lui-même) sont appelés Ruby Gems. Ce sont des progiciels Ruby, pas nécessairement liés à Rails, mais comme Rails est basé sur Ruby, 98% des gemmes peuvent être mises à disposition du code de votre application Web Rails.
Beaucoup de gemmes peuvent être trouvées dans github , mais son funner est de rechercher des gemmes via Ruby-gems ou Ruby-toolbox
Votre gemfile
est une liste de tous les gems que vous souhaitez inclure dans le projet . Il est utilisé avec bundler (également un gem) pour installer, mettre à jour, supprimer et gérer les gems utilisés.
La gemfile
a un autre objectif: vous pouvez regrouper les gems dans les groupes :development
, :test
, :assets
, :production
, etc., et les Rails sauront quand inclure les gems. Par exemple:
group :development, :test do
gem "rspec-Rails"
gem "factory_girl_Rails"
gem "guard-rspec"
end
Notez que sur Rails 4, le groupe assets
est obsolète.
Ces gemmes appartiennent à l'environnement de développement et à l'environnement de test puisqu'elles servent à tester l'application. Vous n’avez pas besoin qu’ils soient disponibles dans l’environnement de production (vous pouvez le faire, mais cela alourdira inutilement la mémoire).
So - Pour utiliser la gemfile
, écrivez simplement le joyau que vous souhaitez installer, par exemple
gem 'devise'
assurez-vous d’installer bundler
au préalable (dans votre console/cmd/ssh) avec
$ gem install bundler
et ensuite écrire dans la console
bundle install
vous remarquerez qu'un autre fichier gem apparaît! Gemfile.lock
Ce fichier, comme vous le verrez si vous l'ouvrez avec un lecteur de texte, répertorie toutes vos gemmes avec leur version et leurs dépendances. Cela vous sera utile lorsque vous aurez besoin de savoir quelles versions des gems que vous avez installées.
Pour plus de lecture sur la Gemfile
- à lire sur la page d'ensemble
pour plus d'informations sur la sélection d'un joyau, vous pouvez commencer par this _
Bonne chance et amusez-vous bien!
Ok, c'est quoi ce Gemfile.lock qui a été créé?
Comme son nom l'indique, Gemfile.lock verrouille toutes les versions de toutes les gemmes installées. Donc, si Gemfile est ce qui doit être installé, le fichier de verrouillage est ce qui a été installé et quelle version est réellement requise pour que l'application soit opérationnelle.
Si vous ne disposez pas des gems dans cette version spécifique (comme spécifié dans Gemfile.lock), Rails se plaindra et vous devrez soit installer les gems manquants (via bundle install
), soit résoudre manuellement les conflits (je crois que le bundler vous en donnera indices sur cela)
Quelques choses à savoir sur Gemfile.lock
bundle install
. Si vous supprimez accidentellement Gemfile
, vous n’avez pas de chance. Vous devriez utiliser git :)Gemfile
s sont des configurations pour Bundler , utilisé pour gérer les dépendances Ruby de votre application. Ce site Web contient beaucoup de documentation, y compris la Page de manuel de Gemfile .
Je vais essayer de donner une réponse simple
Explication par analogie
Supposons que vous vouliez faire une voiture. À partir de rien. Maintenant, ce sera un cauchemar. Vous devez construire: le châssis, le moteur, le corroborateur, le radiateur, le refroidissement, la ventilation, etc., etc.
Les pierres précieuses vous permettent d'utiliser des pièces de voiture que d'autres personnes ont fabriquées auparavant
Mais vous n'êtes pas le seul à construire une voiture. Tous ceux qui ont déjà construit une voiture ont essentiellement fait les mêmes choses. Il y a eu des gens intelligents qui sont venus fabriquer des moteurs à combustion, etc. bien avant que vous ne le fassiez ............ tant pis.
Vous n'avez pas besoin de réinventer la roue. Pourquoi créer le vôtre alors que vous pouvez simplement obtenir le meilleur équipement directement dans les rayons? Et si vous pouviez obtenir l'un des meilleurs moteurs disponibles, créé par les ingénieurs les plus talentueux du monde, sans lever le petit doigt? Est-ce que tu vas passer un an à essayer de faire le tien?
Donc, en gros, plutôt que de tout fabriquer vous-même, vous écrivez une liste de toutes les pièces dont vous avez besoin. Et c’est essentiellement un fichier de gemmes:
Ce mon ami, est fondamentalement votre fichier de gem
Votre système peut avoir beaucoup de gemmes ... donc peut avoir plusieurs versions du même gem
.
Un Gemfile
spécifie la liste de gems
avec son versions
qui doit être utilisé/chargé/(installer si non présent) à chaque exécution de votre application Rails. ou quoi que ce soit avec bundle exec . .
Tout d'abord, qu'est-ce qu'un joyau?
Selon Wikipedia:
RubyGems est un gestionnaire de paquets pour le langage de programmation Ruby qui fournit un format standard pour la distribution des programmes Ruby et les bibliothèques
Gemfile
Un Gemfile est un fichier que nous créons et qui est utilisé pour décrire gem dépendances pour les programmes Ruby
Maintenant, en des mots très très simples:
Gem peut être considéré comme une bibliothèque que vous pouvez utiliser dans votre code ... Exemple: faker gem
Votre code peut utiliser les fonctionnalités de la variable faker
gem pour générer de fausses données.
Vous pouvez maintenant répertorier toutes les gemmes requises par votre projet dans le fichier gem . Lorsque vous effectuez une installation en groupe, elles sont toutes installées.