DevTools

Cheatsheet npm / yarn

Gestores de pacotes para JavaScript e Node.js

Volver a los lenguajes
npm / yarn
23 tarjetas encontradas
Categorías:
Versiones:

npm


4 cards
Iniciar proyecto
npm init       # interactivo
npm init -y    # aceptar defaults
npm init @scope/app # template

Crear package.json.

Instalar paquetes
npm install         # todo
npm install lodash  # dependencia
npm i -D jest       # devDependency
npm i -g typescript # global
npm i lodash@4.17.21 # versión fija

Añadir dependencias.

Eliminar y actualizar
npm uninstall lodash
npm update        # actualizar todo
npm outdated      # ver desactualizados
npm audit         # vulnerabilidades
npm audit fix     # corregir auto

Mantener dependencias.

Info y list
npm list         # árbol de deps
npm list --depth=0 # solo directas
npm info lodash  # info del paquete
npm view lodash versions

Explorar dependencias.

Yarn


4 cards
Comandos básicos
yarn init         # crear proyecto
yarn             # instalar todo
yarn add lodash   # dependencia
yarn add -D jest  # devDependency
yarn remove lodash  # eliminar

Yarn clásico (v1).

Yarn Berry (v2+)
corepack enable
yarn set version stable
yarn install    # PnP por defecto
yarn dlx create-react-app my-app
yarn workspaces foreach run build

Yarn moderno.

Info y upgrade
yarn list        # dependencias
yarn outdated    # desactualizados
yarn upgrade     # actualizar
yarn info lodash  # detalles
yarn why lodash   # quién depende

Gestionar paquetes.

Cache y limpieza
yarn cache dir    # ver cache
yarn cache clean  # limpiar cache
yarn install --force # reinstalar
node_modules/.yarn-state.yml

Cache de yarn.

Scripts


4 cards
Definir scripts
// package.json
"scripts": {
  "dev": "vite",
  "build": "vite build",
  "test": "jest --coverage",
  "lint": "eslint src/"
}

Scripts en package.json.

Ejecutar scripts
npm run dev
npm run build
npm test      # atajo (sin run)
npm start     # atajo
yarn dev      # yarn (sin run)

Correr scripts.

Hooks pre/post
"scripts": {
  "prebuild": "npm run clean",
  "build": "webpack",
  "postbuild": "npm run copy-assets"
}
// pre/post se ejecutan automáticamente

Hooks de ciclo de vida.

Pasar argumentos
npm run test -- --watch
npm run build -- --mode production
yarn test --watch  # yarn no necesita --

// En el script: usa process.argv

Argumentos para scripts.

Dependências


4 cards
Versiones (semver)
"lodash": "4.17.21"  # exacta
"lodash": "^4.17.0"  # compat (minor)
"lodash": "~4.17.0"  # patch only
"lodash": "*"       # cualquiera
"lodash": ">=4.0 <5.0"

Semantic versioning.

package-lock vs yarn.lock
package-lock.json (npm)
yarn.lock (yarn)

# ¡SIEMPRE commitear!
# Garantiza builds reproducibles
# npm ci → instala exacto del lock

Archivos de lock.

npm ci vs npm install
npm ci       # limpio, del lock (CI)
npm install  # puede actualizar lock

# npm ci:
# • Elimina node_modules
# • Instala exacto del lock
# • Más rápido en CI

Diferencias importantes.

Dependencias opcionales
"optionalDependencies": {
  "fsevents": "^2.3.0"
}

"peerDependencies": {
  "react": ">=17.0.0"
}

Tipos especiales de deps.

Publicação


3 cards
Publicar paquete
npm login
npm publish
npm publish --access public
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

Publicar en el npm registry.

Preparar paquete
// package.json
"name": "@scope/package",
"version": "1.0.0",
"main": "dist/index.js",
"files": ["dist/"],
"prepublishOnly": "npm run build"

Configurar para publicación.

Registry privado
npm publish --registry http://local:4873

// .npmrc
registry=https://registry.npmjs.org/
@scope:registry=http://private:4873
//token=${NPM_TOKEN}

Usar registry privado.

Avançado


4 cards
npx
npx create-react-app my-app
npx prettier --write .
npx http-server dist/
npx cowsay "Hola"

# Ejecuta sin instalar globalmente

Ejecutar paquetes temporales.

Workspaces (monorepo)
// package.json raíz
"workspaces": ["packages/*"]

npm run build --workspace=pkg-a
yarn workspaces foreach run build
yarn workspace pkg-a add lodash

Monorepo con workspaces.

Seguridad
npm audit         # verificar vulns
npm audit fix     # corregir auto
npm audit fix --force # breaking
yarn audit        # yarn
npm config set audit-level high

Auditoría de seguridad.

.npmrc y config
npm config list
npm config set save-exact true
npm config set prefix ~/.npm-global

// .npmrc del proyecto:
save-exact=true
engine-strict=true

Configuración de npm.