Программисты, прежде чем приступать к написанию своей первой строчки кода, должны сдавать экзамен(ы) на профпригодность. И вот почему.
Случай №1
Скажите есть ли еще в этом прекрасном мире ЯП в которых есть 2 (два!) модуля (http и https) для доступа веб-ресурсам?
Случай №2
понадобилось мне скачать файл в grunt`е. нашлось для этого аж 3 плагина
- eug48/grunt-download. тут даже говорить нечего. афтар поматросил и бросил
- twolfson/grunt-curl. куча зависимостей. отбросил
- mCzolko/grunt-downloadfile. с этим все ок. на первый взгляд. чего только стоит баг который «превращает» урл вида "http://1.com/q?1" в "http://1.com/q". Ну а что? параметры для лохов.
все мой юзкейс не отрабатывают. есть еще просто нода-модуль download. с еще большей горой зависимостей чем в №2. мой кейс проглатывает на ура. но ни один плагин его не использует как бекенд
Случай №3
понадобилось запустить subprocess в grunt`е. для сего есть аж 4(!) плагина
- grunt-shell. неплохой. использует child_process.exec
- grunt-exec. мож чутаху хуже 1го. использует child_process.spawn. В issues первого пришел чувак. говорит «давайте переедем на grunt.util.spawn» (Вы уже поняли оберткой над чем он есть). его послали. тогда он пришел в issues 2го. там говорят «круто». будет пулреквест — примем. ну тут дело и утихло.
- grunt-shell-spawn. форк от сами поняли чего. ибо родитель не умел «отпускать» процессы в фон. в процессе разработки также переехали на spawn. сейчас пейсателю надоело. ищет кому бы передать дело.
- grunt-bg-shell. умеет тоже что и третий. стартовал позже его. но при этом афтар не поленился пойти к 3му в баги и сказать что мол «повторяетесь батенька». на что ему возразили первой строчкой из лога.
об разнице между spawn и exec можна почитать здесь.
Случай №..
гдето тоже самое с парой grunt-bump и grunt-release. афтар 1го (кстати из гугла) сказал что "npm publish" здесь не будет. так и обявился №2. все что он умеет сверху это такой желанный «npm publish» и аплод зипов в «молодежную социальную сеть» © ктото из ЛОРа. Думаю что между набором grunt-load-{task,config,configs} тоже есть пара-тройка занимательных историй
Так и живем.
да, получился бложик. извиняюсь
upd: спасибо пользователям за указанные ошибки