Cuando nos adentramos en el mundo de TypeScript con Node.js, uno de los primeros pasos fundamentales es instalar correctamente el compilador de TypeScript, conocido como tsc. Aunque existen varias formas de hacerlo, es importante elegir la que nos garantice un entorno de trabajo estable, seguro y portable.
En primer lugar, es común encontrar recomendaciones para instalar TypeScript de manera global usando el comando npm install -g typescript. Esta instalación global permite ejecutar tsc desde cualquier ubicación en nuestro sistema, lo que puede parecer cómodo. Por ejemplo, si creamos una carpeta llamada Curso TS en el escritorio, podríamos ejecutar tsc sin importar en qué directorio estemos. Sin embargo, esta práctica tiene sus inconvenientes. Principalmente, asume que todas las personas que trabajen en el proyecto tienen TypeScript instalado globalmente, lo cual puede generar confusión y problemas, especialmente en equipos de trabajo o en entornos de integración continua (CI). Además, en sistemas Linux o Windows, instalar paquetes globalmente puede requerir permisos de superusuario, lo que no es recomendable por razones de seguridad.
Por estas razones, la mejor práctica que proponemos es instalar TypeScript como una dependencia de desarrollo local dentro del proyecto. Esto se logra creando primero un proyecto Node.js con npm init para generar un archivo package.json. Luego, instalamos TypeScript con el comando:
npm install --save-dev typescript
Esta instalación local coloca TypeScript dentro de la carpeta node_modules del proyecto y registra la dependencia en la sección devDependencies del package.json. Así, cualquier persona que clone el proyecto solo tendrá que ejecutar npm install para obtener la versión correcta de TypeScript que el proyecto requiere, asegurando que todos trabajen con la misma versión y evitando conflictos.
Una ventaja adicional de esta forma de instalación es que podemos fijar la versión exacta de TypeScript que queremos usar, por ejemplo, para evitar problemas con versiones preliminares o incompatibilidades. Esto hace que nuestro entorno sea mucho más portable y predecible.
Una vez instalado localmente, podemos ejecutar el compilador con:
npx tsc
o directamente desde los scripts definidos en el package.json, sin necesidad de tener TypeScript instalado globalmente.
En resumen, aunque la instalación global puede parecer más sencilla, instalar TypeScript como dependencia local en cada proyecto es la forma más profesional y segura de trabajar, especialmente en entornos colaborativos y de producción. Así, garantizamos que nuestro código se compile siempre con la versión adecuada y evitamos problemas de permisos o configuraciones inconsistentes.