Objetivo del tema
En este módulo aprenderás a sacar partido de los scripts definidos en package.json
para automatizar tareas con npm: ejecutar comandos con npm run
, entender los scripts predefinidos, crear flujos personalizados y trabajar con variables de entorno de forma portable.
Los scripts se declaran dentro de la sección scripts
del manifiesto del proyecto. Se ejecutan con el comando npm run nombre-script
, que agrega automáticamente node_modules/.bin
al PATH temporal, permitiendo invocar herramientas instaladas de forma local.
{
"scripts": {
"hola": "node scripts/saludar.js"
}
}
npm run hola
Algunos nombres de script tienen atajos especiales documentados en npm scripts. Los más habituales son:
start
: ejecutado con solo npm start
. Ideal para lanzar la aplicación principal.test
: se ejecuta con npm test
. npm lo usa también antes de publicar paquetes.build
: muchas herramientas esperan este script para preparar artefactos de producción; se invoca manualmente con npm run build
.{
"scripts": {
"start": "node src/server.js",
"test": "node --test",
"build": "webpack --mode production"
}
}
Si omites alguno de estos nombres, npm buscará binarios por defecto: por ejemplo, ejecutar npm test
sin script intenta lanzar node test
, así que siempre es recomendable definirlos de forma explícita.
Los scripts permiten crear rutinas reproducibles para el equipo: desde ejecutar linters y formateadores hasta orquestar pipelines complejos. Puedes encadenar comandos con operadores del sistema (&&
, ||
) o apoyarte en herramientas como npm-run-all para correr tareas en paralelo o serie.
{
"scripts": {
"lint": "eslint ./src",
"format": "prettier --write \"src/**/*.js\"",
"prepare": "npm run lint && npm run test",
"dev": "npm-run-all --parallel watch:*",
"watch:server": "nodemon src/server.js",
"watch:assets": "webpack --watch"
}
}
prepare
si necesitas correr tareas automáticas después de instalar dependencias (por ejemplo, generar artefactos o compilar código fuente).Muchos flujos requieren configurar variables de entorno antes de ejecutar una tarea. Puedes definirlas directamente en el script; npm las expone al proceso hijo según la sintaxis del sistema operativo.
# Sintaxis POSIX (Linux/macOS)
NODE_ENV=production npm run build
# Sintaxis PowerShell (Windows moderno)
$env:NODE_ENV = "production"; npm run build
Para escribir scripts portables que funcionen igual en Windows y sistemas POSIX, utiliza utilidades como cross-env, que se ejecuta como un binario dentro de tus scripts.
{
"scripts": {
"build": "cross-env NODE_ENV=production webpack --mode production",
"start": "cross-env PORT=4000 node src/server.js"
}
}
Recuerda no exponer credenciales sensibles directamente en el repositorio. Para valores secretos utiliza variables definidas en el entorno de despliegue o archivos ignorados por tu sistema de control de versiones.
Los scripts de npm son un punto central de automatización: simplifican comandos complejos, aportan atajos estándar y permiten trabajar con configuraciones enriquecidas mediante variables de entorno. Dominar estas prácticas mejora la consistencia de tu equipo y prepara el terreno para pipelines de integración continua.