Instalación
Instalar npm y Node
node -v && npm -v # check installed versions npm install -g npm@latest # update npm itself nvm install --lts # install Node LTS via nvm nvm use 20 # switch to Node 20
Comandos de instalación
npm installInstalar todas las dependencias de package.json
npm install pkgAgregar paquete como dependencia
npm install -D pkgAgregar paquete como devDependency
npm install -g pkgInstalar paquete globalmente
npm install [email protected]Instalar versión específica
npm ciInstalación limpia desde lock file (CI/CD)
npm uninstall pkgEliminar paquete
Gestión de paquetes
Gestionar paquetes
npm ls # list installed packages npm ls --depth=0 # top-level only npm outdated # check for newer versions npm update # update within semver range npm audit # check for vulnerabilities
Comandos de gestión
npm lsListar paquetes instalados en árbol
npm outdatedMostrar paquetes con versiones más nuevas
npm update [pkg]Actualizar paquetes dentro del rango semver
npm auditAuditar dependencias en busca de vulnerabilidades
npm audit fixCorregir dependencias vulnerables automáticamente
npm pruneEliminar paquetes extraños
npm dedupeAplanar árbol de dependencias para reducir duplicación
Scripts
Ejecutar scripts
npm run build # run "build" script npm test # shortcut for "test" script npm start # shortcut for "start" script npm run lint -- --fix # pass args to script npm run dev & # run in background
Ciclo de vida de scripts
npm test / npm tEjecutar scripts.test
npm startEjecutar scripts.start
npm run <name>Ejecutar cualquier script personalizado
pre<name>Se ejecuta automáticamente antes de
post<name>Se ejecuta automáticamente después de
npm runListar todos los scripts disponibles
package.json
Inicializar y campos
npm init # interactive setup npm init -y # accept all defaults npm pkg set name="my-app" # set a field npm pkg get version # read a field
Campos clave
nameNombre del paquete (minúsculas, sin espacios)
versionVersión actual (semver: major.minor.patch)
mainPunto de entrada para CommonJS (require)
modulePunto de entrada para módulos ES (bundlers)
type"module" para ESM, "commonjs" para CJS (por defecto)
scriptsComandos con nombre (build, test, start, etc.)
dependenciesDependencias de producción
devDependenciesDependencias solo para desarrollo
enginesRangos de versión requeridos de Node/npm
Versionado
Comandos de versión
npm version patch # 1.0.0 → 1.0.1 npm version minor # 1.0.1 → 1.1.0 npm version major # 1.1.0 → 2.0.0 npm version 3.2.1 # set explicit version npm version prerelease --preid=beta # 1.0.0-beta.0
Rangos semver
^1.2.3Compatible: >=1.2.3 <2.0.0 (por defecto)
~1.2.3Nivel de parche: >=1.2.3 <1.3.0
1.2.3Solo versión exacta
>=1.0.0 <2.0.0Rango explícito
*Cualquier versión
1.x / 1.2.xRangos con comodín
latestEtiqueta de la versión más reciente publicada
Publicación
Flujo de publicación
npm login # authenticate to registry npm publish # publish public package npm publish --access public # scoped package as public npm unpublish [email protected] # remove specific version npm deprecate pkg@"<2" "Use v2+" # deprecate old versions
Referencia de publicación
npm loginAutenticarse con el registro npm
npm publishPublicar paquete en el registro
npm packCrear tarball sin publicar
npm unpublishEliminar versión publicada (dentro de 72h)
npm deprecateMarcar versiones como obsoletas
.npmignoreArchivos a excluir del paquete publicado
files (package.json)Lista blanca de archivos a incluir en el paquete
Workspaces
Comandos de workspace
npm init -w packages/core # create workspace npm install -w packages/core lodash # install in workspace npm run build --workspaces # run in all workspaces npm run test -w packages/api # run in specific workspace npm ls --workspaces # list workspace deps
Configuración de workspace
workspaces (package.json)Array de globs de workspace: ["packages/*"]
-w / --workspaceApuntar a un workspace específico
--workspacesEjecutar comando en todos los workspaces
--include-workspace-rootIncluir el paquete raíz en operaciones de workspace
npm install (root)Instala todas las dependencias de workspace
HoistingDeps compartidas elevadas al node_modules raíz
npx
Ejecutar con npx
npx create-react-app my-app # run without installing npx tsc --init # run local or remote bin npx -p typescript tsc file.ts # specify package explicitly npx --yes create-next-app # skip install prompt npx node@18 -e "console.log('hi')" # run with specific Node
Opciones de npx
npx cmdEjecutar cmd desde node_modules/.bin local o remoto
npx -p pkg cmdInstalar pkg, luego ejecutar cmd
npx --yes cmdConfirmar automáticamente la instalación
npx --no cmdRechazar instalación — falla si no es local
npx -c 'cmd'Ejecutar comando shell con PATH de npx
npx node@verEjecutar versión específica de Node.js
Configuración
Comandos de configuración
npm config list # show current config npm config set registry https://r.npmjs.com/ npm config set init-author-name "Name" npm config get prefix # global install path npm config delete key # remove a config value
Referencia de configuración
.npmrc (project)Archivo de configuración por proyecto
~/.npmrcArchivo de configuración por usuario
registryURL del registro de paquetes
save-exacttrue para fijar versiones exactas al instalar
engine-stricttrue para forzar el campo engines
fundfalse para suprimir mensajes de financiamiento
auditfalse para omitir auditoría al instalar
Patrones comunes
Comandos en una línea
npm ls --depth=0 --json | jq '.dependencies | keys[]' npm outdated --long # show type and homepage npm cache clean --force # clear npm cache npm explain pkg # why is pkg installed? npm exec -- envinfo --system # system info for bug reports
Recetas
Lock file onlynpm ci — instalación limpia desde package-lock.json
Check licensesnpx license-checker --summary
Find unused depsnpx depcheck
Bundle sizenpx bundlephobia-cli pkg — verificar tamaño del paquete
Upgrade allnpx npm-check-updates -u && npm install
Local registrynpx verdaccio — ejecutar registro privado