J'essaie d'entrer dans Grunt, ce que je connais pour la première fois, mais je ne comprends pas son utilité.
Je comprends que c'est un taskrunner. Je comprends qu’il peut être utilisé pour des tâches telles que bundle, uglify, jshint, minify, etc., etc., etc., tout ce qui peut être transformé en tâche scriptée.
Mais je ne vois pas quel avantage cela donne. De toute façon, presque tout peut être exécuté à partir de la ligne de commande, ce qui signifie que vous pouvez simplement les combiner à l'aide d'un simple script Shell. Il me semble que configurer grunt + gruntfiles et écrire des tâches est un travail plus plutôt que d'écrire un script Shell plutôt que moins.
Qu'est-ce qui me manque à ce sujet?
Grunt est fondamentalement un gestionnaire de compilation/tâche écrit au-dessus de NodeJS. Je l'appellerais l'équivalent de pile NodeJS d'ANT pour Java. Voici quelques scénarios courants que vous voudriez utiliser avec Grunt:
Je ne pense pas que votre script Shell puisse faire TOUTES ces choses. Pour résumer, installer un fichier Gruntfile.js est fastidieux pour quelqu'un qui n'a que peu d'expérience du javascript/est nouveau pour nodeJS. Je suis passé par les mêmes peines qu'un apprenant, mais Grunt est un logiciel étonnant. Investissez le temps nécessaire pour configurer un fichier Gruntfile.j adéquat pour votre projet frontal, et vous remercierez dieu de vous avoir rendu la vie beaucoup plus facile :)
Le script Advantage vs Shell:
Si vous écrivez un script shell pour chacune de ces tâches, il est fastidieux de le gérer, puis de le personnaliser pour chacun de vos besoins. Gruntfile.js est en fait assez facile. il y a une configuration avec laquelle vous l'initialisez, spécifiant les tâches que vous voulez effectuer, les sources et les cibles pour chacune.
L'intégration avec les générateurs de semences du projet sur Yeoman, Gulp est un autre facteur majeur à prendre en compte. Yeoman et Gulp viennent avec Gruntfile.js 'avec des valeurs par défaut intelligentes. Pour quelqu'un qui est le seul contributeur d'assurance-chômage de son équipe, cela n'a pas de prix pour moi!
Pour ceux qui travaillent sur les technologies frontales, si vous avez plusieurs personnes à vos côtés, il est plutôt facile pour elles de faire connaissance avec Grunt, qui est déjà bien documentée avec beaucoup de réponses sur SO, plutôt que de connaître votre Scripts shell. Cela pourrait être un facteur dans les grandes équipes.
Les nombreux plugins pour Grunt étendent les fonctionnalités de base. À moins que votre script Shell soit TRÈS populaire, et TRÈS modulaire, je ne vois pas de plugins en cours de construction. Cela s'étend également à l'inclusion de nouvelles technologies front-end dans votre projet. Si vous voulez utiliser TypeScript dans votre projet demain, votre script Shell devra l’intégrer et en rendre compte avec vos propres efforts. Avec Grunt, c’est aussi simple que "installer npm" et ajouter une configuration.
Même si je suis d’accord avec la plupart des avantages mentionnés dans Réponse acceptée , je dois néanmoins tenir compte des inconvénients mis en évidence par Keith Cirkel dans Pourquoi devrions-nous arrêter d’utiliser Grunt & Gulp
Ainsi, certains avantages sont réfutés par les frais généraux de Grunt et vous devriez au moins en tenir compte dans votre décision finale d’utiliser Grunt ou non.