Path: csiph.com!.POSTED.204-73-239-109.cust.centrio.cz!not-for-mail From: Cezary Tomczyk Newsgroups: pl.comp.lang.javascript Subject: Re: dlaczego firstChild oraz childNodes[0] mam undefined? Date: Thu, 23 Mar 2017 10:41:11 +0100 Organization: csiph.com Internet News Service Message-ID: References: <5d210841-ac34-4a0b-9981-9fe8d5e61d4c@googlegroups.com> <1qyr04lt73a9k.2i4h5jx0p963$.dlg@40tude.net> <20170316120955.4c2fcf01@pe.regionet.pl> <07b85c99-5512-4bf8-a85b-32e2693318a2@googlegroups.com> <1bw0p3palg9q0$.1iffa42jnbl49.dlg@40tude.net> <1exqgczs770q5.1ncnughms5d0a.dlg@40tude.net> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Injection-Date: Thu, 23 Mar 2017 09:41:11 +0000 (UTC) Injection-Info: csiph.com; posting-host="204-73-239-109.cust.centrio.cz:109.239.73.204"; logging-data="65165"; mail-complaints-to="admin@kev009.com" User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 In-Reply-To: Xref: csiph.com pl.comp.lang.javascript:3360 On 23/03/2017 01:27, Borys Pogoreło wrote: > Dnia Wed, 22 Mar 2017 13:51:39 +0100, Cezary Tomczyk napisał(a): > >> Taki przykład z życia wzięty: do pewnego stopnia korzystałem z Grunt-a i >> Gulp-a, ale im bardziej miałem niestandardowy build process, tym większa >> frustracja była z korzystania z Grunt-a/Gulp-a (hackowanie, brak >> pluginów, brak aktualizacji pluginów, itd. > > A jaki miałeś problem z Gulpem? Grunt faktycznie nie jest zbyt elastyczny z > uwagi na deklaratywne podejście, ale w Gulpie możesz napisać prawie > wszystko, to w końcu zwykły JS + strumienie. No właśnie dlatego, że mam dostępny Promise, to Gulp nie jest mi potrzebny. >> Patrz: >> http://www.ctomczyk.pl/why-i-switched-to-only-nodejs-npm-and-stopped-using-grunt/767/). > > Aleś wykombinował, ten wynalazek w Gulpie miałby kilka linii. Choć czytałem > już o takim, co uniksowe Makefile używa w roli build procesu dla www. Niby > "co kto lubi", ale spróbuj takie rozwiązanie przejąć po kimś... To żadna kombinacja. Przypatrz się temu dokładnie. Bierzesz pakiet npm i używasz go całkiem normalnie: wejście -> wyjście. Nie ma tam żadnej magii i przejęcie tego przez kogoś innego jest naprawdę proste. Ba! Już kilka build-ów napisałem, zostały przejęte i nie było z tym żadnego problemu. Co więcej, raz napisany build działa przez bardzo długi czas i nie trzeba do niego zaglądać co rusz ;-) No, poza aktualizacjami pakietów npm, jeśli ktoś chce. A jeśli ktoś ma problem ze zrozumieniem kodu, który jest w buildzie, to nie wiem, co mogę o tym sądzić. Osobiście, po jakimś czasie doszedłem do wniosku, że Grunt/Gulp za bardzo ograniczają mnie i w zasadzie zdefiniowanie i napisanie kroków do build-a jest banalnie proste: 1. Definiujesz co chcesz osiągnąć. 2. Dobierasz sobie pakiet npm. 3. Piszesz kilka linijek kodu, by przekazać parametry do pakietu npm i tyle. Każde zadanie jest niezależne i kolejkę ustawiam sobię zwykłym Promisem. Rzecz jasna - są plusy i minusy. Do plusów zaliczam: * Usuwam niepotrzebną zależność od Grunt-a/Gulp-a * Nie muszę czekać, aż autor pakietu dla Grunt-a/Gulp-a uaktualni mi go * Nie muszę nic hackować, bo albo korzystam z gotowych pakietów npm (jeśli są wystarczające), albo piszę sam. * Do konkretnego zadania mogę wybrać jakikolwiek pakiet npm, spełniający moje wymagania. Mając Grunt-a/Gulp-a muszę brać pod uwagę to, że pakiet był specjalnie dla G/G. Do minusów: * Trzeba przeczytać i zrozumieć kod :D * Więcej nie pamiętam, ale możesz dopisać kolejne punkty tutaj ;-) > Widzę, że w komentarzach Ci napisali w sumie to samo ;) Zdania są podzielone i to jest normalne. Nie oczekuję tego, iż G/G zostanie porzucony czy nagle wszyscy przestaną z tego korzystać. Zaprezentowałem swój punkt widzenia. Akceptuję odmienne zdanie ;-) -- Cezary Tomczyk http://www.ctomczyk.pl/