Paquets npm locals vs globals: Aprèn la diferència

Aprèn la diferència entre paquets npm locals i globals. Evita errors comuns i usa npx per a un desenvolupament més net. Perfecte per a principiants en Node.js.

domingo, 26 de julio de 2026 • 4 min de lectura • Equip Q2BSTUDIO

¿Cuándo usar npm install y npm install -g?

Quan comencem en el món del desenvolupament amb Node.js, un dels primers dubtes que sorgeix és la diferència entre instal·lar paquets de manera local o global. A simple vista sembla un detall menor, però triar incorrectament pot provocar errors difícils de depurar, especialment quan treballem en equip o despleguem aplicacions en producció. A Q2BSTUDIO, com a empresa especialitzada en desenvolupament d'aplicacions a mida, sabem que una correcta gestió de dependències és la base de projectes sostenibles i escalables.

Node Package Manager (npm) és el gestor de paquets per defecte de Node.js. La seva funció principal és instal·lar, actualitzar i gestionar les llibreries que el nostre codi necessita. No obstant, npm pot col·locar aquests paquets en dues ubicacions diferents: dins del directori del projecte (instal·lació local) o en una carpeta global del sistema (instal·lació global). Entendre quan utilitzar cada una és clau per evitar el clàssic error 'Cannot find module'.

Instal·lació local: l'opció per defecte i la més segura

Executar npm install express dins de la carpeta del teu projecte descarrega el paquet a node_modules/ i el registra a package.json dins de la secció dependencies. Això significa que qualsevol persona que cloni el repositori només necessita executar npm install per obtenir exactament les mateixes versions. Aquesta pràctica és obligatòria per a totes les llibreries que la teva aplicació utilitza en temps d'execució, ja sigui un framework web, un client de base de dades o una llibreria de validació.

Imagina que desenvolupes una API REST amb Express i la puges a un repositori. Si un altre desenvolupador clona el projecte i Express està instal·lat globalment a la teva màquina, la seva terminal li retornarà un error perquè no troba el mòdul. Aquest problema s'agreuja en entorns d'integració contínua o desplegaments al núvol, on el sistema no té accés als teus paquets globals. Per això, a Q2BSTUDIO recomanem sempre instal·lar de forma local qualsevol dependència que el codi necessiti per funcionar, incloent aquelles relacionades amb infraestructura cloud AWS/Azure que utilitzis des del backend.

Instal·lació global: només per a eines de línia de comandes

Quan fem servir npm install -g nodemon, el paquet s'instal·la en una ubicació del sistema (per exemple, /usr/local/lib/node_modules a Linux o %AppData%/npm a Windows). Això permet executar l'ordre nodemon des de qualsevol terminal, independentment del projecte en què estiguis treballant. Els paquets globals són útils per a eines que fem servir durant el desenvolupament, com typescript, eslint, pm2 o create-react-app. No han de ser llibreries que la teva aplicació importi amb require() o import.

Un error habitual és instal·lar globalment un paquet com Express o Axios pensant que així estarà disponible a tots els projectes. Això funciona a la teva màquina local, però trenca la reproductibilitat del projecte. En entorns professionals, on la integració amb sistemes de ciberseguretat i BI/Power BI requereix consistència, no podem permetre'ns dependències ocultes.

I què passa amb npx?

Des de la versió 5.2 de npm, disposem de npx, un executador de paquets que permet llançar ordres sense necessitat d'instal·lació global. Per exemple, npx create-react-app el-meu-app descarrega temporalment el paquet i l'executa, sense deixar-lo instal·lat de manera permanent. Això és ideal per a eines que fem servir de manera esporàdica, com generadors de projectes o versions específiques d'un CLI. A Q2BSTUDIO utilitzem aquesta estratègia per mantenir els entorns de desenvolupament nets, especialment quan treballem amb agents IA o solucions d'intel·ligència artificial que requereixen versions concretes de llibreries.

Decisió pràctica: local, global o npx?

La regla que apliquem als nostres projectes és senzilla: pregunta't qui necessita el paquet. Si el necessita l'aplicació (perquè el teu codi l'importa), instal·la'l de forma local. Si el necessites tu com a desenvolupador per executar ordres en diversos projectes, instal·la'l de forma global. I si només l'utilitzaràs una vegada o de manera ocasional, utilitza npx.

En el context de aplicacions a mida, aquesta distinció cobra encara més rellevància. Quan construïm programari personalitzat per a clients, la gestió de dependències ha d'estar documentada i ser replicable. Un package.json ben configurat evita sorpreses en entorns de staging i producció. A més, en integrar serveis cloud com AWS o Azure, les llibreries de connexió (per exemple, aws-sdk) sempre han de ser locals.

Conclusió

Dominar la diferència entre paquets locals i globals no és només una qüestió tècnica, sinó d'organització i bones pràctiques. Et estalviarà hores de debugging i facilitarà el treball en equip. A Q2BSTUDIO, cada projecte que desenvolupem segueix aquests principis, combinant una base sòlida de dependències amb l'ús intel·ligent d'eines globals i npx. Si estàs començant amb Node.js, recorda: instal·la local el que el teu codi necessita, global el que la teva terminal necessita, i utilitza npx per a la resta.

UNA PAUSA?

Juga una estona abans de marxar

ELS NOSTRES SERVEIS

Com et podem ajudar

Tens un projecte en ment?

Explica'ns la teva visió i la convertim en una solució de programari. Sigui quin sigui l'abast, fem realitat la teva idea.