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.
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:
Wyszukiwanie pakietów stworzonych przez innych programistów.
Instalowanie tych pakietów w Twoim projekcie.
Zarządzanie wersjami zainstalowanych pakietów (aktualizacja, usuwanie).
Definiowanie i uruchamianie niestandardowych skryptów.
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.
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
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")
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!