Para introducir este tema, hay que comenzar definiendo que es deno. Deno, es un entorno de ejecución (runtime) para JavaScript, TypeScript y WebAssembly, desarrollado por Ryan Dahl, el creador de Node.js. Utiliza el motor V8 de Chrome y está escrito en Rust12.´
Ventajas
Seguridad por defecto: Deno no tiene acceso a archivos, redes o entornos a menos que se le otorgue explícitamente. Esto reduce el riesgo de vulnerabilidades de seguridad.
Soporte nativo para TypeScript: Deno ejecuta TypeScript de manera nativa sin necesidad de configuración adicional, lo que simplifica el desarrollo y mejora la productividad.
Módulos estándar: Deno incluye un conjunto de módulos estándar revisados y auditados, lo que reduce la dependencia de paquetes externos y mejora la seguridad y estabilidad del código.
Herramientas integradas: Viene con herramientas útiles como un inspector de dependencias, un formateador de código y un linter, lo que facilita el mantenimiento y la calidad del código.
Manejo de dependencias: Deno utiliza URLs para importar módulos, eliminando la necesidad de un archivo package.json y un gestor de paquetes como npm. Esto simplifica la gestión de dependencias.
Compatibilidad con WebAssembly: Deno soporta WebAssembly, lo que permite ejecutar código de alto rendimiento escrito en otros lenguajes.
Creando tu primer proyecto
Para partir con un proyecto de deno, hay que usar el siguiente comando:
deno init <project_name>
Esto creara un proyecto que tendrá lo siguiente
- project_name/
|- main.ts
|- deno.json
|- main_test.ts
Y listo, ya tienes creado tu primer proyecto de deno.
Acerca de los modulos e importaciones
Cuando se creaba un proyecto en astro, next.js y otros, se instalaban las dependencias vía npm, pnpm, bun, etc. Ahora esto ya no es necesario.
Formas de importar
Con deno, hay dos principales formas de importar paquetes. La primera es simplemente importando desde ese paquete ya sea npm u otro que utilices.
En algún archivo tuyo de Next.js, Vite o Astro por ejemplo, uno debia instalar el paquete requerido y luego importarlo dentro del archivo. Ahora, con deno, en vez de instalar el paquete, simplemente se importa dando como nombre su gestor de paquetes antes del paquete a requerir. Por ejemplo si quisiéramos utilizar express, se realizaría de esta manera:
import express from "npm:express"
Esto indica que quieres importar express, del paquete npm express, por lo que, repitiendo lo ya dicho, no necesitas instalarlo, simplemente importarlo!!!
O en segundo lugar, en vez de tener que importarlo con la nomenclatura de "npm:", lo que hacemos es editar el archivo deno.json creado, donde a este le agrega lo siguiente:
"imports": {
"express": "npm:express"
}
Con el codigo agregado a deno.json ahora podras importar desde donde quieras solo con la palabra express de esta manera:
import express from "express"
Corre tu primer deno project
Finalmente, para correr el proyecto ya no se necesita usar npm run, ahora se usan los task como se muestra de la siguiente manera en el deno.json:
"tasks": {
"dev": "deno run --watch main.ts", //viene por defecto
}
Esto nos indica que para correr el proyecto, simplemente habría que hacer:
deno task dev
Ya estarás corriendo tu proyecto de deno con typescript nativamente.
Espero te haya servido este mini tutorial y que disfrutes de esta nueva manera de hacer proyectos con un runtime de typescript nativo muy prometedor.
Top comments (0)