NPX es un ejecutor de comandos de Node.js que se introdujo en NPM versión 5.2.0. Su nombre es un acrónimo de “Node Package eXecutor” y su objetivo principal es facilitar la ejecución de comandos de paquetes sin tener que instalarlos globalmente.
NPX es ha sido una mejora importante en el entorno de Node.js y NPM. Nos permite ejecutar comandos de paquetes sin necesidad de instalarlos globalmente (lo que simplifica la gestión de dependencias y mejora la portabilidad de los proyectos).
NPX resuelve automáticamente la ubicación del paquete y lo ejecuta, sin tener que instalarlo. Lo que ya sabemos que pueden generar conflictos entre proyectos, o darnos problemas al compartir proyectos entre equipos y/o personas.
Ventajas de usar NPX en un curso de NPM
NPX ofrece varias ventajas en el ámbito de un curso de NPM. Algunas de ellas son:
Evita la instalación global de paquetes: Con NPX no es necesario instalar globalmente los paquetes. Tu ordenador, más limpito y más feliz 😉.
Evita conflictos de dependencias: Al no instalar paquetes globalmente, nos evita conflictos de dependencias entre diferentes proyectos.
Facilita la gestión de versiones de paquetes: NPX permite ejecutar comandos con versiones específicas de paquetes.
Instalación de NPX
NPX viene preinstalado con NPM desde la versión 5.2.0, por lo que no es necesario instalarlo por separado.
Puedes comprobar que lo tienes correctamente instalado ejecutando este comando.
npx -v
Uso básico de NPX
NPX también permite ejecutar comandos específicos de un paquete sin necesidad de instalar el paquete en sí.
Para ello usamos la sintaxis npm <paquete> <comando>
para ejecutar un comando específico de un paquete en particular. Así,
npx <comando> <parametros>
Por ejemplo, imaginemos que creemos ejecutar el comando create-react-app
, que crea una nueva aplicación del React. El autor del paquete pone a nuestra disposición esta herramienta.
Anteriormente, tendríamos que haber instalado el paquete de forma global,
npm install -g create-react-app
Pero con NPX, podemos hacerlo mismo de la siguiente forma,
npx create-react-app mi-aplicacion
En este caso, NPX buscará el paquete create-react-app
en los directorios locales. Si no lo encuentra, lo descargará temporalmente, lo ejecutará y lo eliminará después de su uso.
Esto significa que no se instalará permanentemente en tu sistema ningún fichero, lo cuál es una ventaja muy importante respecto al método anterior de instalación global, que te obligaba a ir instalando cosas y más cosas por tu equipo
Ejecutando comandos con versiones específicas
Además de ejecutar comandos de paquetes sin instalarlos globalmente, NPX también nos permite especificar la versión de un paquete que deseamos utilizar.
Para ejecutar un comando con una versión específica de un paquete, puedes utilizar la siguiente sintaxis:
npx <paquete>@<versión> <comando>
Por ejemplo, si deseas ejecutar el comando mi-comando
de la versión 1.0.0 de mi-paquete
, puedes hacerlo de la siguiente manera:
npx mi-paquete@1.0.0 mi-comando
NPX descargará temporalmente la versión 1.0.0 de mi-paquete
, ejecutará el comando mi-comando
y lo eliminará después de su uso.
Esto puede ser útil cuando necesitamos ejecutar comandos con versiones específicas para garantizar la compatibilidad o probar nuevas funcionalidades