Pokazywanie postów oznaczonych etykietą composer. Pokaż wszystkie posty
Pokazywanie postów oznaczonych etykietą composer. Pokaż wszystkie posty

piątek, 14 czerwca 2019

Grunt - podsumowanie mojej zabawy z pakietami do automatyzowania pracy

Skoro ostatnio odrzuciłem na razie używanie generatorów, to może napiszę czego się nauczyłem?

mamy 2 pliki:

package.json

{
  "name": "project",
  "title": "file_project",
  "version": "0.0.1",
  "homepage": "localhost",
  "author": {name:"Born-kes"}
}

i Gruntfile.js
...

to w tym drugim, mogę korzystać z danych zadeklarowanych w innym miejscu:

np.

grunt.initConfig({
   pkg: grunt.file.readJSON('package.json'),

   concat: {
      dist: {
        src: ['
<%= pkg.title %>/*.js', 'test/{,*/}*.js'],
        dest: 'dist/<%= pkg.name %>.js'
      }

   },
   uglify: {
      dist: {
        src: '<%= concat.dist.dest %>',
        dest: 'dist/<%= pkg.name %>.min.js'
      }
    },


Wniosek jak tego użyć?

Daje to wrażenie, że można mieć powiedzmy już gotowe konfiguracje i dołączać je grunt.file.readJSON do projektu, a większość zmian opiera się o plik package.json.

To wygląda zachęcająco.

Faworyt:

Chyba najczęściej używanym pakietem jest grunt-contrib-watch - obserwator projektu.
Przeładowuje on Tasksi po każdej modyfikacji i może "piszczeć" jak któryś task coś znajdzie np.zrobimy literówkę, albo coś przestało działać...

Zmniejszanie plików

grunt-contrib-uglify minimalizuje plik usuwając zbędne białe znaki i czasem nazwy zmiennych by skrócić kod. Szybko działa i pozwala mieć fajny przejrzysty kod z tysiącem komentarzy, a na boku tworzy kod czysty od naszych komentarzy i spakowany (zminifikowany).
grunt-contrib-htmlmin - minifikuje pliki HTML
grunt-contrib-cssmin - minifikuje pliki CSS

grunt-contrib-connect umnie strasznie zamula, ale odświerzanie okna przeglądarki po każdej modyfikacji to fajny bajer jak się ma dwa monitory.

grunt-usemin - pozwala podmieniać fragmenty kodu , np używać tagów w HTML do generowania strony bez potrzeby generowania jej przez serwer www.

Pilnowanie składni i poprawności kodu

grunt-contrib-jshint pozwala mieć konfiguracje w pliku w projekcie ( plik .jshint ), nie wiem co na to praktycy, ale chyba porządkuje kod.

grunt-eslint jest chyba lepiej wspierany (od grunt-contrib-jshint) , będę starał się go lepiej poznać. Kontroluje semantycznosć kodu, czyli między innymi literówki i poprawność.

grunt-contrib-concat pozwala łączyć pliki, ale szału niema, jeszcze nie jestem na etapie by każdy fragmęt kodu (funkcjonalność, zadanie) mieć w innym pliku.

grunt-karma - pozwala pisać testy jednostkowe.



Ciekawostka

NodeJS ma jeszcze dostęp do phpUnit od composera. Czytałem, że composer potrafi używać pakietów nodejs :-) - na stonie o drupalu 8, jest duży poradnik.
Ciekawostka może ktoś skorzysta, szkoda mi trochę czasu na takie zabawy.


Jak coś jeszcze znajdę to dopiszę do listy

poniedziałek, 27 maja 2019

Raport z Ćwiczeń nad gitem

Dziś ćwiczyłem pracę z Gitem.

Narzędzie:
- używam TortoiseGit

Zadanie.
1)
- Stworzyć repozytorium : https://bitbucket.org/born-kes/composer/src/master/
- Stworzyć instalator Composera w batch,
- plik bat, który pobiera pliki Composera i zapisuje w projekcie (tworzymy środowisko pracy).
- Sprawdzić czy pamiętam jak konfiguruje się composser'a

2)
- Stworzyć kilka wątków/kanałów (Branch) na repozytorium Git'a
- Wprowadzić zmiany, w każdym z wątków inne.
- Połączyć (Marge...) wątki (Branche)

Raport, jakie kroki podjołem:
- stworzyłem repozytorim
- sklonowałem na dysk
- stworzyłem wątki
- przełając się między nimi potworzyłem różne konflikty między wersjami (wątkami)

3) Rozwiązuje problem?
1) ustawiam wątek ( Switch/Checkout... )
 np.master
2) zaktualizować wątek (Pull...)
- są dwa wątki master (localny i serwera repozytorium)
3)  dołączyć (Marge..) do niego poprawki (commit'y)  z innego wątku (Branch)

4) Edytować poprawkę jeśli dotyczy jednego pliku...

5) Wysłać (Push...) na serwer
- bez dołączania już nowych plików z tego co widzę, nie mamy tu wyboru.

6) Hura udało się?


środa, 22 maja 2019

Notatka: instalacja narzędzi dla programistów

 -------------------------------------------
 Grunt / Glup (alternatywa)

- wykonuje listę tasków (zadań) napisanych w js.
minifikuje kod, łączy pliki, podmienia tagi na tekst, śledzi zmiany w plikach, powtarza testy.

 -------------------------
  front-end
 https://bower.io/

 śledzi pakiety które chcesz mieć w projekcie i ściąga potrzebną wersje, albo aktualizuje.

  -------------------------
  http://yeoman.io/ 

- Tworzy i rozbudowuje szkielet aplikacji - korzysta z gotowych generatorów
(aplikacje/strony mobilne, rozszerzenia firefox'a/chroma, wordpress itp),
 tworzy też procedury dla Grunt'a/Glup'a i zestawy testów jednostkowych.
  -------------------------

 Instalacja w cmd:

Czy masz zainstalowanego nodejs ?

nie:
 - pobierz z https://nodejs.org

tak:
sprawdzamy wersje nodejs & npm
npm --version



Czy masz plik package.json

Nie:
{
 - generate file package.json
npm init

 - zainstaluj grunt globalnie

npm install -g grunt-cli

 - zainstaluj grunt'a i modułów w projekcie

 npm install grunt --save-dev grunt-contrib-connect grunt-contrib-watch --save-dev

 - instal karma :supports test-driven development i moduły
 npm install karma grunt-karma karma-jasmine jasmine-core karma-browser-reporter karma-story-reporter --save-dev

 - instal launcher for browsers to test for karma
 npm install karma-chrome-launcher karma-cli karma-firefox-launcher karma-ie-launcher karma-phantomjs-launcher karma-script-launcher --save-dev
}

Tak:
npm install


 - Tworzymy pliki config
 * gruntfile.js
 * karma.config.js



 zapomniałem o  Composer jest dla php
https://getcomposer.org/

Tu za instalacje odpowiada w CMD
phar i wget
 

wget https://phar.phpunit.de/phpunit-6.5.phar
php phpunit-6.5.phar --version
 
 
ale opisze bardziej innym razem.

plik config phpunit
phpunit.xml