npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

mpgeneric

v1.0.7

Published

**Co musimy zrobić żeby ten projekt zadziałał**: - po pierwsze instalujemy [node.js](https://nodejs.org/en/) - wybieramy najnowszą wersje - potrzebujemy prawdopodobnie (niektóe pakiety o to krzyczą) klienta [git-a](https://git-scm.com/download/win

Downloads

3

Readme

Media Press Generic - seed angularowy:

Co musimy zrobić żeby ten projekt zadziałał:

  • po pierwsze instalujemy node.js
    • wybieramy najnowszą wersje
  • potrzebujemy prawdopodobnie (niektóe pakiety o to krzyczą) klienta git-a
    • polecam instalacje metodą dalej, dalej dalej ale można sobie pod siebie dopasować
  • restartujemy koputer bo pewnie nie zadziała nam podstawowa komenda w konsoli (naszym ulubionym narzędziu ;) ) tj. npm
  • skoro już zrestartowaliśmy to po kolei w konsoli:
    • npm i gulp-cli -g
    • npm i typescript -g
    • npm i lite-server -g
      • opcjonalnie bo jest to nakładka do node.js umożliwająca szybkie zahostowanie apki
  • następnie wchodzimy do katalogu gdzie mamy ten projekt (/MediaPressGeneric/) i po kolei:
    • npm i i czekamy aż skończy (w konsoli może być czerwono ale raczej to nie powinien być problem. W razie w postaram się pomóc)
  • w tym samym katalogu po skończeniu instalacji z node mamy już wszystko co jest nam potrzebne :) aby zobaczyć działający projekt musimy tylko zrobić:
    • gulp serve żeby zahostować naszą apkę (sposób stricte pod developerkę z opcją hot-reload w przeglądarcę (patrz punkt poniżęj - jak skonfigurować chrome))
    • gulp build - builduje apkę pod produkcję (wymaga uzupełnienia przez relmana konfiguracji)

To tyle, Media Press Generic powinien nam się odpalić w przeglądarce na http://localhost:3000/#!/

Konfiguracja czyli co gdzie jak i kiedy

1. package.json czyli nasz główny plik z pakietami (zewnętrzne dllki w świecie .Neta)

  • składa się z kilku fragmentów ale to co nas interesuje to dependencies i devDependecies
  • devDependecies to miejsce gdzię lądują TYLKO pakiety które są potrzebne do developerki tj. np:
    • gulp w naszej wersji
    • dodatki do gulpa bo potrzebujemy żeby poza buildem zrobił nam kawę ;)
    • inne
  • dependencies czyli miejsce gdzie wpada TYLKO to co jest nam potrzebne do działania naszej apki na produkcji
    • w tym projekcie mamy już wszystko co jest potrzebne do działania w ilości minimalnej, jak potrzebujemy coś innego to wrzucamy tutaj, inaczej webpack (patrz niżej) niewychwyci tego pakietu i nie zadziała nam to w aplikacji
    • przykadowe pakiety to angular, angular-material etc.

2. tslint.json czyli linter - plik konfigurujący pomagacz składni i czystości kodu (spacje, klamry w odpowiednim miejscu etc) - działa tylko z edytorem który go wykorzystuje ale pomaga w pisaniu (jak coś irytuje to da się wyłaczyć, dokonfigurować pod siebie )

3. tsconfig.json - konfiguracja typescript-a, w wersji wrzuconej tutaj jest optymalnie na moją wiedzę, ale zapraszam do zabawy nim bo opcji jest mnóstwo a i popsuć można sporo, ewnetualnie nawet coś ulepszyć ;)

4. gulpfile.js czyli plik do którego wchodzi gulp jak tylko w katalogu naszej apki wpiszemy gulp [nazwa taska]

  • tutaj możemy pisać własne taski czyli proste (lub nie) skrypty js robiące za nas kawę i np build
  • gotowe i działajce w generic:
    • serve - odpala serwer www, builduje apkę, hostuje ją na domyślnie http://localhost:3000/#!/ i nasłuchuje zmian w kodzie odpalając automatycznie rebuild i reload przeglądarki
      • drobna uwaga - gulp potrafi się przekręcić i zapełnić sobie stos - po plus minus 30 hot-reloadzie trzeba niestety odpalić proces gulp serve jeszcze raz
    • build - builduje nam do katalogu .dist gotowy do wrzucenia na produkcje pakiet naszej aplikacji. Możemy to przetestować wchodząc do tego katalogu i w konsoli odpalając lite-server co (jeśli go zainstalowaliśmy) odpali nam serwer www i zahostuje apkę na wolnym porcie localhosta (powinno samo otworzyć kartę). Lite-server wspiera hot-reload.
  • katalog gulp_task czyli miejsce gdzie gulpfile.json odwołuje się w poszukiwaniu kilku innych plików gdzie ma swoje konfiguracje i taski
    • browsersync.js - to tylko konfiguracja serwera www z hot-reloadem, można coś pokonfigurować typu port etc - konfiguracja tego taska to katalog conf i odpowiedni plik
    • misc.js - czyli inne ;)
    • katalog conf - tutaj jest jeszcze konfiguracja tasków gulpa w pliku gulp.conf.js ale nie ma co tam szukać jak wszystko działa

5. webpack.js główny "składacz" naszej apki zasługujący na osobny punkt :)

  • w tym pliku mamy główną konfiguracje samego procesu webpacka ale własciwe configi developersji i produkcyjny do katalog conf i webpack.dist.conf.js oraz webpack.conf.js
  • sam webpack to ogromn możliwości których nieogarniam bo nie było potrzeby - zapraszam do niezbyt przyjaznej dokumentacji
  • każdy config to najpierw budowa modułu i szukanie plików odpowieniego typu (html, ts, json etc)
  • następnie mamy pluginy typu uglify etc
  • output i jego nazwy
  • dodatkowe konfiguracje pluginów webpacka

Dodatek - czyli jaki skonfigurować Chrome i Visual Studio Code

Chrome:

  • musimy odpalić chrome z otwartym portem do debugowania -remote-debugging-port=9222
  • teraz możemy używajac dowolnej wtyczyki do debugowania debugować naszą apkę (polecam vscode ale zadziała też atom, sublime-text i inne)
  • bez protokołu możemy śmiało korzystać z F12 w chrome czyli z debugowania w przegladarce - jest świetne i wystarczy w kazdym wypadku bo każda inna opcja to tak naprawdę nakładka na debugger z chroma
  • ale osobiście polecam vscode ;)

Visual Studio Code

  • zaczynamy od instalacji ;)
  • osobiście mam wersje insiders bo ma zawsze najnowsze dodatki ale to takie zboczenie ;)
  • z polecanych dodatków ułatwiających życie:
    • Angular 1 JavaScript and Typescript Snippets
    • Auto import
    • beautify
    • tfs
    • tslint
  • debugger for chrome - czyli dodatek który wymaga osobnego punktu:
    • to pozwala nam na debugowanie w chromie (jeśli mamy otwarty port patrz wyżej)
    • działająca konfiguracja
{
  "version": "0.2.0",
  "configurations": [{
    "name": "Launch Chrome against localhost, with sourcemaps",
    "type": "chrome",
    "request": "launch",
    "url": "http://localhost:3000/",
    "sourceMaps": true,
    "webRoot": "${workspaceRoot}",
    "sourceMapPathOverrides": {
      "webpack:///*": "/*"
    }
  }, {
    "name": "Attach to Chrome, with sourcemaps",
    "type": "chrome",
    "request": "attach",
    "port": 9222,
    "sourceMaps": true,
    "url": "http://localhost:3000/*",
    "webRoot": "${workspaceRoot}\\src",
    "internalConsoleOptions": "openOnSessionStart",
    "smartStep": true ,
    "sourceMapPathOverrides": {
      "webpack://*": "${workspaceRoot}\\*"
    }
  }]
}

W razie pytań, wątpliwości, problemów zapraszam