Kod programowania na ekranach

Wprowadzenie do Node.js i npm

5 min. czytania

Node.js to środowisko uruchomieniowe, które pozwala wykonywać kod JavaScript poza przeglądarką – bezpośrednio z terminala. Dzięki temu deweloperzy mogą tworzyć zarówno frontend, jak i backend w jednym języku. Specyfiką Node.js jest pętla zdarzeń (event loop) i nieblokujące I/O, co umożliwia obsługę wielu jednoczesnych połączeń z wysoką wydajnością.

Co to jest npm – menedżer pakietów Node.js?

npm (Node Package Manager) jest domyślnym menedżerem pakietów dla środowiska Node.js i instaluje się automatycznie wraz z nim. To menedżer zależności dla JavaScript oraz największy publiczny rejestr pakietów JavaScript na świecie. npm powstał w 2010 roku i od tego czasu stał się standardem w ekosystemie Node.js.

npm umożliwia instalowanie, aktualizowanie i zarządzanie zależnościami projektu. Pakiety to paczki z kodem, które można pobrać i wykorzystać w projekcie. Aby opublikować własny pakiet, wystarczy założyć konto na npmjs.org.

Najczęstsze zadania wykonywane za pomocą npm to:

  • instalowanie nowych pakietów do projektu,
  • aktualizowanie istniejących zależności,
  • usuwanie niepotrzebnych paczek,
  • uruchamianie zdefiniowanych skryptów (np. test, build),
  • publikowanie własnych pakietów do rejestru.

Instalacja Node.js i npm

Windows

Proces instalacji jest banalnie prosty – wykonaj następujące kroki:

  1. Pobierz instalator ze strony oficjalnej (nodejs.org) i wybierz wersję LTS;
  2. Uruchom instalator i postępuj zgodnie z instrukcjami na ekranie;
  3. Po zakończeniu instalacji otwórz Wiersz poleceń i sprawdź wersje narzędzi, wpisując:

Wykonaj w terminalu:

node -v
npm -v

Polecenia te zwrócą aktualnie zainstalowane wersje Node.js oraz npm.

Systemy Unix/Linux i macOS

Najwygodniej skorzystać z menedżera wersji nvm (Node Version Manager), który ułatwia instalację i przełączanie się między wersjami Node.js. Po zainstalowaniu nvm uruchom w terminalu:

nvm install node
nvm use node

Inicjowanie nowego projektu

Aby rozpocząć nowy projekt Node.js w pustym katalogu, użyj polecenia npm init, które utworzy plik package.jsonrdzeń projektu, przechowujący metadane, listę zależności oraz skrypty.

Wykonaj w terminalu:

npm init

Konfigurator poprosi o podanie m.in. następujących informacji:

  • nazwa projektu,
  • wersja,
  • opis,
  • plik wejściowy (main),
  • komenda do testów,
  • link do repozytorium,
  • słowa kluczowe,
  • licencja.

Alternatywą jest użycie flagi, która automatycznie przyjmie wartości domyślne:

npm init -y

Po uruchomieniu tego polecenia otrzymasz plik package.json o przykładowej zawartości:

{
"name": "test-project",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC"
}

Podstawowe komendy npm

Instalacja pakietów

Jeśli chcesz dodać do projektu nową bibliotekę lub framework, użyj polecenia:

npm install <nazwa-pakietu>

Na przykład, aby zainstalować popularne narzędzia:

# Instalacja zależności produkcyjnej, np. frameworka Express
npm install express
# Instalacja zależności deweloperskiej, np. narzędzia do testowania Mocha
npm install mocha --save-dev

Polecenie npm install <pakiet> dodaje wpis do sekcji dependencies w package.json i pobiera pakiet do node_modules.

Aktualizacja pakietów

Aby zaktualizować zainstalowane pakiety do najnowszych dopuszczalnych wersji, użyj:

npm update

Instalacja wszystkich zależności projektu

W katalogu głównym projektu (tam, gdzie znajduje się package.json) zainstaluj wszystkie wymagane zależności poleceniem:

npm install

Polecenie to pobierze odpowiednie moduły do folderu node_modules w projekcie.

Instalacja globalna pakietów

Jeśli chcesz zainstalować pakiet globalnie na całej maszynie, użyj flagi -g:

# Instalacja narzędzia nodemon do automatycznego restartowania aplikacji
npm install -g nodemon

Zarządzanie zależnościami

npm automatycznie rozwiązuje zależności między pakietami. W pliku package.json występują m.in. dwa kluczowe typy: dependencies (pakiety potrzebne do uruchomienia aplikacji) oraz devDependencies (pakiety używane tylko w trakcie rozwoju, np. narzędzia testowe czy bundlery). Pakiety instalowane bez flagi --save-dev trafiają do dependencies, a z flagą --save-dev – do devDependencies.

Skrypty npm

Jedną z kluczowych funkcji npm są skrypty, które umożliwiają definiowanie własnych poleceń wykonywanych w terminalu. To prosty sposób na automatyzację zadań, takich jak uruchamianie serwera, testowanie czy budowanie.

Skrypty definiuje się w sekcji scripts pliku package.json. Przykład:

{
"scripts": {
"start": "node index.js",
"test": "mocha",
"build": "webpack"
}
}

Aby uruchomić skrypt, wpisz w terminalu:

# Uruchomienie aplikacji
npm start
# Wykonanie testów
npm test
# Zbudowanie projektu
npm run build

npm start i npm test to skróty, natomiast pozostałe skrypty uruchamia się poprzez npm run <nazwa-skryptu>. Dodatkowo, podczas wykonywania npm start kolejno uruchamiane są etapy prestart, start i poststart.

Praktyczne zastosowania npm

npm udostępnia ogromny ekosystem narzędzi. Oto wybrane przykłady pakietów i ich zastosowań:

Pakiet Zastosowanie
Express Framework do budowania aplikacji webowych
gm, sharp Manipulowanie obrazami: edycja, zmiana rozmiaru, kompresja
PDFKit Generowanie plików PDF
validator.js Walidacja ciągów danych
imagemin, UglifyJS2 Minifikacja kodu
spritesmith Generowanie arkuszy sprite
Winston Logowanie zdarzeń
commander.js Tworzenie aplikacji wiersza polecenia

Pierwsze kroki – praktyka

Po zainstalowaniu Node.js i npm możesz od razu zacząć pracę. Wykonaj te kroki:

  1. Utwórz nowy katalog dla projektu;
  2. Przejdź do niego w terminalu;
  3. Wykonaj npm init -y, aby szybko wygenerować package.json;
  4. Zainstaluj potrzebne pakiety, np. npm install express;
  5. Stwórz plik index.js z kodem aplikacji;
  6. Dodaj skrypty w package.json do uruchamiania aplikacji;
  7. Uruchom aplikację za pomocą npm start.

Dzięki npm możesz łatwo zarządzać wszystkimi zależnościami projektu, a edytor taki jak Visual Studio Code lub WebStorm znacząco przyspieszy Twoją pracę.