como-usar-scripts-npm

Cómo crear y ejecutar Scripts en NPM

Los scripts en NPM son alias para de secuencias de comandos de terminal, que podemos definir para ejecutarlos cómodamente nosotros mismos, o los futuros colaboradores de nuestro proyecto.

Por ejemplo, podemos crear script para la automatización de tareas complicadas, como ejecutar pruebas, iniciar el servidor de desarrollo, construir la aplicación, entre otros.

El uso de scripts es muy habitual. De hecho, lo más normal es que tengas varios scripts en cualquier proyecto. De esta forma, en lugar de recordar y ejecutar comandos individuales, es tan cómodo como usar el script.

Además, tiene la ventaja importante de que te aseguras que todos los miembros del equipo estén utilicen los mismos comandos. O, si es un código Open Source, que sepan como ejecutar las acciones definidas.

Cómo utilizar los scripts NPM

Los scripts se definen en el fichero package.json de nuestro proyecto. Puedes crear y personalizar tus propios Scripts NPM de acuerdo con las necesidades de tu proyecto.

Creando un script

Para crear un script personalizado en NPM, debemos definirlo en la sección "scripts" de nuestro archivo package.json.

Cada script tiene un nombre único y se define utilizando el formato "nombre": "comando". Por ejemplo:

"scripts": {
  "launch_notepad": "notepad"
}

Con este script en Windows lanzaríamos Notepad. No es que sea especialmente útil, pero para el ejemplo se entiende suficiente 😃.

Ejecutar un Script NPM

Luego, simplemente escribe el comando npm run seguido del nombre del script que deseas ejecutar:

npm run launch_notepad

En el caso de nuestro sencillo ejemplo de comando, el nombre sería launch_notepad

Pasando argumentos a scripts personalizados

En algunos casos, es posible que necesitemos pasar argumentos a nuestros scripts personalizados. No es demasiado frecuente, pero es posible.

Puedes pasar parámetros a tus Scripts NPM agregando dos guiones seguidos de los argumentos después del nombre del script.

npm run notepad -- mi_fichero_texto.txt

Atentos, que es necesario poner un -- después del nombre del script que queremos ejecutar. Esto indica a npm que lo que viene a continuación son los parámetros del Script.

En nuestro ejemplo, el Script lanzaría Notepad, y le pasaría mi_fichero_texto.txt como parámetro. Con lo que se abriría el Notepad, con este fichero abierto. Que nuevamente, no es especialmente útil, pero como ejemplo me sirve.

Ejemplos más realistas podrían ser, por ejemplo, ejecutar el script setup pasando un argumento de configuración de la siguiente manera:

npm run setup -- --config=production

Scripts Pre y Post

NPM ofrece la posibilidad de ejecutar scripts antes y después de un script específico. Utiliza los siguientes nombres para scripts pre y post:

"scripts": {
	"prestart": "echo 'Antes de iniciar'",
	"start": "echo 'Start'",
	"poststart": "echo 'Después de iniciar'",
}

Al ejecutar el comando npm run start, se ejecutarán automáticamente los scripts prestart, start y poststart en ese orden.

Ejecutando scripts en secuencia

En ocasiones, es posible que necesitemos ejecutar varios scripts en secuencia, uno después del otro. Para lograr esto, podemos utilizar el operador && en la línea de comandos. Por ejemplo:

npm run build && npm run test

En el comando anterior, se ejecutará el script script1 y, si finaliza correctamente, se ejecutará el script script2.

Esto es útil, por ejemplo, si queremos crear comandos que lancen otras tareas en orden.

"scripts": {
  "launch": "npm run check && npm run build",
  "check": "echo 'Check'",  
  "build": "echo 'Build'",
}

En este caso, el Script launch ejecutaría el Script check y después el Script Build. En el ejemplo, estos dos scripts únicamente muestran un texto por consola. Pero en proyecto real tendrían nuestra lógica.