Co to jest NPM i skrypty NPM? Podstawy zarządzania projektami Node.js

MS

Marcin Stawowczyk · @m7rlin

3 min czytania ·

Jeśli zaczynasz pracę z Node.js, obok samego środowiska uruchomieniowego, natychmiast spotkasz się z NPM. To nieodłączny element ekosystemu Node.js, który znacząco ułatwia życie programistom. W tym artykule przyjrzymy się, czym jest NPM, jak zarządzać za jego pomocą pakietami oraz co to są i do czego służą skrypty NPM.

Co to jest NPM?

NPM to skrót od Node Package Manager. Jak sama nazwa wskazuje, jest to menedżer pakietów dla Node.js. Jest to standardowe i najpopularniejsze narzędzie tego typu, instalowane automatycznie razem z Node.js.

Pomyśl o NPM jak o ogromnym repozytorium (rejestrze) gotowych fragmentów kodu (nazywanych pakietami lub modułami) oraz narzędziu wiersza poleceń (CLI), które pozwala na łatwe:

  1. Wyszukiwanie pakietów stworzonych przez innych programistów.

  2. Instalowanie tych pakietów w Twoim projekcie.

  3. Zarządzanie wersjami zainstalowanych pakietów (aktualizacja, usuwanie).

  4. Definiowanie i uruchamianie niestandardowych skryptów.

  5. Publikowanie własnych pakietów, aby inni mogli z nich korzystać.

Rejestr NPM (dostępny na npmjs.com) zawiera setki tysięcy (a nawet miliony) pakietów do najróżniejszych zastosowań – od tworzenia serwerów webowych (jak Express), przez narzędzia do testowania (jak Jest, Mocha), po biblioteki ułatwiające pracę z datami (jak Moment.js czy Day.js) i wiele, wiele innych.

Zarządzanie pakietami (zależnościami) za pomocą NPM

Podstawową funkcją NPM jest zarządzanie zależnościami projektu – czyli zewnętrznymi bibliotekami, których Twój kod potrzebuje do poprawnego działania. Wszystkie zależności są zapisywane w pliku package.json (o którym mówiliśmy w poprzednim artykule).

Oto podstawowe komendy:

  • Instalowanie pakietu:

    # Instaluje pakiet i zapisuje go jako zależność produkcyjną (dependencies)
    npm install <nazwa-pakietu>
    # Przykład:
    npm install express
    
    # Instaluje pakiet i zapisuje go jako zależność deweloperską (devDependencies)
    # (potrzebną tylko podczas tworzenia, np. do testów, budowania)
    npm install <nazwa-pakietu> --save-dev
    # lub krócej:
    npm install <nazwa-pakietu> -D
    # Przykład:
    npm install nodemon --save-dev

    Uwaga: We współczesnych wersjach NPM flaga --save (zapisanie jako dependencies) jest domyślna przy npm install.

  • Instalowanie wszystkich zależności projektu:
    Jeśli masz już plik package.json z zdefiniowanymi zależnościami (np. po pobraniu projektu z repozytorium), wystarczy uruchomić:

    npm install
    # lub krócej:
    npm i

    NPM odczyta package.json i zainstaluje wszystkie potrzebne pakiety w katalogu node_modules.

  • Odinstalowywanie pakietu:

    npm uninstall <nazwa-pakietu>
    # Przykład:
    npm uninstall express

Co to są skrypty NPM (NPM Scripts)?

Skrypty NPM to mechanizm pozwalający na definiowanie i uruchamianie własnych komend (lub sekwencji komend) w kontekście Twojego projektu. Są one definiowane w sekcji "scripts" w pliku package.json.

Dlaczego są przydatne?

  • Automatyzacja: Umożliwiają zautomatyzowanie powtarzalnych zadań (np. uruchamianie serwera, kompilacja kodu, uruchamianie testów, lintowanie kodu).

  • Uproszczenie: Pozwalają ukryć skomplikowane komendy pod prostymi aliasami.

  • Standaryzacja: Zapewniają spójny sposób wykonywania określonych zadań w projekcie, niezależnie od środowiska dewelopera.

Jak zdefiniować skrypt?

W pliku package.json dodaj lub edytuj obiekt "scripts":

{
  "name": "moj-projekt",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "start": "node index.js",
    "dev": "nodemon index.js",
    "test": "echo \"Error: no test specified\" && exit 1",
    "lint": "eslint . --fix"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "dependencies": {
    "express": "^4.18.2"
  },
  "devDependencies": {
    "eslint": "^8.30.0",
    "nodemon": "^3.1.9"
  }
}

W powyższym przykładzie zdefiniowaliśmy cztery skrypty:

  • start: Uruchamia aplikację za pomocą node index.js.

  • dev: Uruchamia aplikację za pomocą nodemon (narzędzie, które automatycznie restartuje serwer po zmianach w kodzie - świetne do developmentu).

  • test: Domyślny skrypt testowy (w tym wypadku tylko wyświetla komunikat).

  • lint: Uruchamia narzędzie ESLint do sprawdzania i poprawiania stylu kodu.

Jak uruchomić skrypt?

Użyj komendy npm run <nazwa-skryptu>:

# Uruchomi skrypt "dev" (czyli `nodemon index.js`)
npm run dev

# Uruchomi skrypt "lint"
npm run lint

Wyjątki: Istnieją pewne wbudowane nazwy skryptów, które można uruchamiać bez słowa run:

  • npm start (uruchamia skrypt "start")

  • npm test (uruchamia skrypt "test")

  • npm stop (uruchamia skrypt "stop")

  • npm restart (uruchamia skrypt "restart")

Podsumowanie

NPM to fundamentalne narzędzie w ekosystemie Node.js, które pozwala na efektywne zarządzanie zależnościami projektu. Skrypty NPM dodatkowo usprawniają pracę, automatyzując i standaryzując powtarzalne zadania. Opanowanie podstaw NPM i umiejętność korzystania ze skryptów to kluczowy krok na drodze do zostania produktywnym programistą Node.js.

Chcesz dogłębnie poznać możliwości NPM, nauczyć się pisać bardziej zaawansowane skrypty i efektywnie zarządzać swoimi projektami Node.js?

Nasz kurs kompleksowo omawia pracę z NPM, zarządzanie pakietami i tworzenie użytecznych skryptów, dając Ci solidne podstawy do budowy profesjonalnych aplikacji:

🚀 JavaScript dla programistów: Node.js od podstaw 🚀

Zainwestuj w swoje umiejętności i opanuj narzędzia, bez których trudno wyobrazić sobie nowoczesne programowanie w JavaScripcie!