Quelle est l'utilité de Gemfile
dans les rails ?
Mode d'emploi Gemfile
?
Quelle est l'utilité de Gemfile
dans les rails ?
Mode d'emploi Gemfile
?
Au cours de votre développement dans Rails, il y aura des moments où vous voudrez fournir une fonctionnalité dont vous avez besoin, mais soit vous ne savez pas comment faire, soit vous ne voulez pas la mettre en œuvre vous-même, car beaucoup de travail a été consacré à son développement par des développeurs talentueux.
Ces développements dont vous pourriez avoir besoin (authentification de l'utilisateur, système de messages, gestionnaires de ressources, géolocalisation, système de pagination, liens vers des services extérieurs tels que Amazon AWS, et enfin et surtout Rails lui-même) sont appelés Ruby Gems. Il s'agit de progiciels Ruby, qui ne sont pas nécessairement liés à Rails, mais puisque Rails est basé sur Ruby, 98% des gemmes peuvent être mises à la disposition du code de votre application Web Rails.
De nombreuses pierres précieuses peuvent être trouvées dans github mais il est plus amusant de chercher des pierres précieuses via ruby-gems ou ruby-toolbox
Votre gemfile
est une liste de toutes les gemmes que vous voulez inclure dans le projet. Il est utilisé avec bundler (également une gemme) pour installer, mettre à jour, supprimer et gérer vos gemmes utilisées.
El gemfile
a un autre but - vous pouvez regrouper les gemmes dans :development
, :test
, :assets
, :production
etc. et Rails saura quand inclure les gemmes. Par exemple :
group :development, :test do
gem "rspec-rails"
gem "factory_girl_rails"
gem "guard-rspec"
end
Notez que sous Rails 4, l'option assets
a été déprécié
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'elles soient disponibles dans l'environnement de production (vous pourriez le faire, mais cela ferait gonfler la mémoire inutilement).
Donc - Pour utiliser le gemfile
il suffit d'écrire la gemme 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 gemfile apparaît ! Gemfile.lock
Ce fichier, comme vous le verrez si vous l'ouvrez avec un lecteur de texte, liste toutes vos gemmes avec leur version et leurs dépendances. Cela vous sera utile lorsque vous aurez besoin de savoir quelles versions des gemmes vous avez installées.
Pour en savoir plus sur le Gemfile
- lire sur la page du bundler
pour des informations concernant le choix d'une pierre précieuse, vous pourriez commencer par ce
Bonne chance et amusez-vous bien !
Ok, alors c'est quoi ce Gemfile.lock qui a été créé ?
Gemfile.lock, comme son nom l'indique, est un verrouillage sur toutes les versions de toutes les gemmes qui ont été 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 nécessaire pour que l'application fonctionne.
Si vous ne disposez pas des gemmes dans cette version spécifique (comme spécifié dans Gemfile.lock), rails se plaindra et vous devrez soit installer les gemmes manquantes (par l'intermédiaire de bundle install
) ou corrigez les conflits manuellement (je pense que bundler vous donnera des indications à ce sujet).
Quelques éléments à connaître Gemfile.lock
bundle install
. Si vous supprimez accidentellement Gemfile
vous n'avez pas de chance. Vous devriez utiliser git :)Gemfile
sont des configurations pour Regroupement qui est utilisé pour gérer les dépendances Ruby de votre application. Ce site web comprend une grande quantité de documentation, dont la page Page de manuel Gemfile .
Explication par analogie
Vous voulez construire une voiture. En partant de zéro. Vous devez construire : un châssis, un moteur, un corroborateur, un radiateur, etc.
Les gemmes vous permettent d'utiliser des pièces de voiture que d'autres personnes ont déjà fabriquées.
Tous ceux qui ont construit une voiture ont eu besoin des mêmes choses.
Vous n'avez pas besoin de réinventer la roue. Pourquoi fabriquer votre propre moteur, etc. quand vous pouvez l'obtenir directement de l'étagère ? Et si vous pouviez obtenir l'un des meilleurs moteurs du marché, créé par les ingénieurs les plus talentueux du monde, sans lever le petit doigt ? Vous allez passer un an à essayer de fabriquer le vôtre ?
En gros, plutôt que de tout fabriquer vous-même, vous dressez une liste de toutes les pièces dont vous avez besoin :
Ça mon ami, c'est en gros ton fichier de pierres précieuses !
Votre système peut avoir beaucoup de gemmes ... donc peut avoir plusieurs versions d'un même gemme. gem
.
A Gemfile
spécifie la liste des gems
avec leur versions
qui sera utilisé/chargé/(installé s'il n'est pas présent) à chaque fois que vous exécutez votre application rails. ou tout ce qui a pour nom bundle exec . .
Tout d'abord, qu'est-ce qu'une pierre précieuse ?
Selon Wikipédia :
RubyGems est un gestionnaire de paquets pour le langage de programmation Ruby. fournit un format standard pour la distribution de programmes et de bibliothèques
Gemfile
Un Gemfile est un fichier que nous créons et qui est utilisé pour décrire les gemmes. pour les programmes Ruby
Maintenant, en mots très très simples :
Gem peut être considéré comme une bibliothèque que vous pouvez utiliser dans votre code. Exemple : fausse pierre précieuse
Votre code peut utiliser la fonctionnalité de faker
pour produire de fausses données.
Maintenant vous pouvez lister toutes les gemmes que votre projet requiert dans le gemfile. Lorsque vous faites une installation groupée, toutes les gemmes de votre fichier gemfile sont installées pour vous.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.