El Estado de la Compatibilidad de Node en Deno

Rate this content
Bookmark

Deno es un tiempo de ejecución de TypeScript y JavaScript de próxima generación creado por el creador original de Node.js. Deno es rápido, seguro por defecto y ofrece una gran experiencia de desarrollo, con TypeScript, JSX, pruebas, linting y más, todo incluido de serie. Y lo mejor de todo es que puedes llevar contigo muchos de tus módulos favoritos de Node a Deno. En esta charla, cubriremos el estado actual de la compatibilidad con proyectos y módulos de Node.js en Deno. Demostraremos qué funciona sin necesidad de configuración y los mecanismos disponibles en Deno que te permitirán llevar lo mejor del ecosistema de Node contigo.

David Sherret
David Sherret
Kevin Whinnery
Kevin Whinnery
23 min
04 Apr, 2024

Comments

Sign in or register to post your comment.

Video Summary and Transcription

La charla de hoy presenta Deno, un tiempo de ejecución de JavaScript de próxima generación con soporte nativo de TypeScript y características mejoradas para el desarrollo en el lado del servidor. Deno ofrece permisos granulares para APIs sensibles e incluye herramientas integradas como un marco de pruebas y un linter. La charla demuestra cómo utilizar Deno con un proyecto existente de Node.js, mostrando la compatibilidad y las características de importación. También se discuten características próximas como la incorporación de módulos de Node en Deno y el manejo de extensiones de archivos. En general, Deno proporciona una transición sin problemas para los desarrolladores de Node y ofrece una variedad de herramientas y características potentes.

1. Introducción a Deno y compatibilidad con Node

Short description:

Hoy estamos aquí para hablarles sobre el estado de la compatibilidad con Node en Deno. Deno es un tiempo de ejecución de JavaScript de próxima generación con soporte nativo para TypeScript y una serie de características que mejoran el desarrollo de JavaScript en el lado del servidor. Les mostraremos una demostración rápida de Deno y luego nos enfocaremos en las características de compatibilidad con Node. Les mostraremos cómo aplicar estas características en un proyecto existente de Node. Comencemos con una demostración de Deno, donde verán el soporte nativo para TypeScript y cómo configurar un servidor Deno.

¿Qué tal, todos? Mi nombre es Kevin Wendray. Soy parte del equipo de Deno. Me acompaña David Sherritt, quien también es parte del equipo de Deno, trabajando en el tiempo de ejecución de Deno. Hoy estamos aquí para hablarles un poco sobre el estado de la compatibilidad con Node en Deno.

Para aquellos de ustedes que no han oído hablar de Deno antes, es un tiempo de ejecución de JavaScript de próxima generación con soporte nativo para TypeScript, muchas herramientas integradas que veremos en un momento, y una serie de características que creemos que mejoran el estado del desarrollo de JavaScript en el lado del servidor. Pero algo importante que quizás no sepan sobre Deno es cuánto trabajo se ha realizado en la compatibilidad con Node.js como un componente clave del desarrollo de JavaScript en el lado del servidor. En esta presentación, les mostraremos una demostración rápida de Deno para que tengan una idea de cómo funciona y cómo puede diferir de Node.js. Luego, pasaremos la mayor parte de nuestro tiempo explorando algunas características de compatibilidad con Node para que sepan cómo funcionan y cómo pueden aplicarlas en el contexto de un proyecto existente de Node.

De hecho, vamos a tomar un proyecto simple de Node.js que utiliza Express y hacer algunos cambios en él utilizando algunas de las características de compatibilidad con Node que existen en Deno. Así que vamos a empezar. Por cierto, mi amigo David se unirá a nosotros como nuestro comentarista de color. David es en realidad el implementador de muchas de estas características de compatibilidad de las que vamos a hablar. Le haré algunas preguntas y él será mi compañero de programación mientras implementamos algunas de estas cosas. ¿Qué opinas, David? ¿Estás listo para hacer una demostración rápida de Deno? Definitivamente. Muy bien, vamos a hacerlo. Voy a pasar a un proyecto en blanco de Visual Studio Code donde haré una demostración muy rápida de Deno para que tengan una idea de cómo funciona el tiempo de ejecución.

Una de las cosas que notarán de inmediato en Deno es que tiene soporte nativo para TypeScript. Sin necesidad de instalar dependencias ni nada por el estilo, pueden comenzar rápidamente a escribir código TypeScript. Implementaré un servidor de Deno de `Hola Mundo`. En Deno, esto se hace utilizando el espacio de nombres Deno. Hay un comando Deno serve, que nos permitirá configurar una función controladora que tomará un objeto de solicitud estándar de la web y nos permitirá manejar las solicitudes entrantes. Si tenían un Deno JSON, obtendrán la verificación de tipos. Sí, exactamente. Eso es cierto. Quería señalar que podrían notar algunas subrayados y la falta de autocompletado. Y la forma en que puedo solucionarlo, como mencionó David, es agregando un deno.json, que habilitará mi complemento de VS Code para Deno y comenzará a darme algunas sugerencias sobre Deno serve y el espacio de nombres Deno integrado, cosas así. Como primer argumento de Deno serve, nuevamente pasaré un objeto de solicitud. Y en este caso, simplemente devolveré una nueva respuesta que dirá `Hola Mundo`. Y para que el linter de TypeScript esté contento, agregaré un guión bajo al principio para indicar que en realidad no estoy usando este objeto de solicitud. Entonces, una vez más, sin dependencias de terceros, puedo escribir algo de TypeScript que servirá solicitudes HTTP.

2. Características de tiempo de ejecución de Deno y permisos

Short description:

Deno tiene una característica única de permisos granulares para API sensibles como acceso a la red, acceso al sistema de archivos y acceso al entorno del sistema. Como desarrollador, debes optar explícitamente por estos permisos. Deno también ofrece soporte nativo para TypeScript, un excelente complemento de Visual Studio Code y permisos de tiempo de ejecución.

Y si lo ejecuto con Deno run, notarán que se me solicita permiso. Y esa es otra característica del tiempo de ejecución de Deno, que es única en Deno y no existe en Node de la misma manera, son los permisos granulares para API sensibles como acceso a la red, acceso al sistema de archivos, acceso al entorno del sistema. Esos tipos de permisos debes optar explícitamente por ellos como desarrollador. Entonces, en este caso, voy a decir que sí, estoy dispuesto a permitir el acceso a la red. Y ahora tengo un servidor escuchando en localhost 8000. Así que si abro un nuevo navegador Chrome, que haré aquí en un momento, y voy a localhost 8000, ahí está mi respuesta de hola mundo. Así que eso es solo una demostración rápida de un par de cosas. Tenemos soporte nativo para TypeScript. Tenemos un excelente complemento de Visual Studio Code, que te brinda algo de IntelliSense y otras sugerencias en el entorno de edición. Y tenemos algunos de estos permisos de tiempo de ejecución integrados.

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

Compatibilidad con Node.js en Deno
Node Congress 2022Node Congress 2022
34 min
Compatibilidad con Node.js en Deno
¿Puede Deno ejecutar aplicaciones y bibliotecas creadas para Node.js? ¿Cuáles son los compromisos? ¿Cómo funciona? ¿Qué sigue?
Javascript Debería Venir Con Baterías
React Day Berlin 2023React Day Berlin 2023
30 min
Javascript Debería Venir Con Baterías
Configurar proyectos de JavaScript no es divertido. Empezar implica instalar y configurar node, tsc, prettier, eslint, un marco de pruebas, un controlador de base de datos, y más. ¿Por qué JavaScript no incluye baterías? En esta charla hablaremos de cómo Deno soluciona esto, permitiéndote concentrarte en construir cosas. Exploramos qué beneficios desbloquea la integración completa de herramientas, y recordamos lo divertido que es programar si tus herramientas te ayudan, en lugar de requerir tu cuidado constante.
Deno 2.0
Node Congress 2023Node Congress 2023
36 min
Deno 2.0
Top Content
Deno 2.0 está a punto de llegar y trae consigo grandes cambios para el entorno de ejecución de JavaScript. En esta charla, presentaremos las nuevas características, incluyendo mapas de importación, auto-descubrimiento de package.json y especificadores desnudos. Discutiremos cómo estas mejoras ayudarán a abordar problemas como las dependencias duplicadas y las dependencias que desaparecen. Además, profundizaremos en el soporte incorporado para los especificadores de deno en el registro deno.land/x y su papel en proporcionar un camino recomendado para la publicación. Ven a aprender cómo estas actualizaciones darán forma al futuro del ecosistema de JavaScript y mejorarán la compatibilidad con las aplicaciones Node.
Bun, Deno, Node.js? Recreando un tiempo de ejecución de JavaScript desde cero - Comprende la magia detrás de Node.js
Node Congress 2023Node Congress 2023
29 min
Bun, Deno, Node.js? Recreando un tiempo de ejecución de JavaScript desde cero - Comprende la magia detrás de Node.js
Bun, Deno y muchos otros tiempos de ejecución de JavaScript han sido elogiados, pero ¿sabes por qué? ¿Es tan fácil crear un tiempo de ejecución desde cero?

He estado investigando el secreto detrás del poder de Node.js y por qué hay tantos nuevos tiempos de ejecución de JavaScript surgiendo. Desglosando cada componente clave utilizado en Node.js, he llegado a conclusiones interesantes que muchas personas solían decir, pero en la práctica funciona de manera un poco diferente.

En esta charla, los asistentes aprenderán los conceptos utilizados para crear un nuevo tiempo de ejecución de JavaScript. Pasarán por un ejemplo de cómo hacer un tiempo de ejecución de JavaScript siguiendo lo que está detrás de escena en el proyecto Node.js utilizando C++. Aprenderán la relación entre V8 de Chrome y Libuv y qué hace que un tiempo de ejecución de JavaScript sea mejor que otros.

Esta charla cubrirá los siguientes temas:
- ¿Qué es un motor de JavaScript - V8
- ¿Por qué Node.js utiliza Libuv
- Cómo crear un tiempo de ejecución de JS desde cero
Escribiendo módulos universales para Deno, Node y el navegador
TypeScript Congress 2022TypeScript Congress 2022
25 min
Escribiendo módulos universales para Deno, Node y el navegador
Esta charla te guiará en la escritura de un módulo en TypeScript que puede ser utilizado por usuarios de Deno, Node y navegadores. Te mostraré cómo configurar el formato, el linting y las pruebas en Deno, y luego cómo publicar tu módulo en deno.land/x y npm. También comenzaré con una breve introducción sobre qué es Deno.
Fresh: un nuevo marco de trabajo web de pila completa para Deno
Node Congress 2023Node Congress 2023
24 min
Fresh: un nuevo marco de trabajo web de pila completa para Deno
Fresh es un marco de trabajo web basado en Deno y en estándares web construido para funcionar en el borde

Workshops on related topic

Construyendo un Servidor Web Hiper Rápido con Deno
JSNation Live 2021JSNation Live 2021
156 min
Construyendo un Servidor Web Hiper Rápido con Deno
WorkshopFree
Matt Landers
Will Johnston
2 authors
Deno 1.9 introdujo una nueva API de servidor web que aprovecha Hyper, una implementación rápida y correcta de HTTP para Rust. El uso de esta API en lugar de la implementación std/http aumenta el rendimiento y proporciona soporte para HTTP2. En este masterclass, aprende cómo crear un servidor web utilizando Hyper en el fondo y mejorar el rendimiento de tus aplicaciones web.
Introducción a Deno y Deno Deploy
JSNation 2022JSNation 2022
158 min
Introducción a Deno y Deno Deploy
Workshop
Luca Casonato
Luca Casonato
Aprende cómo construir aplicaciones full stack con Deno y Deno Deploy. Construiremos una aplicación simple utilizando el framework fresh (fresh.deno.dev), y la alojaremos en Deno Deploy.
Escribiendo Módulos Universales para Deno, Node y el Navegador
Node Congress 2022Node Congress 2022
57 min
Escribiendo Módulos Universales para Deno, Node y el Navegador
Workshop
Luca Casonato
Luca Casonato
En este masterclass te guiaré en la escritura de un módulo en TypeScript que pueda ser utilizado por usuarios de Deno, Node y los navegadores. Explicaré cómo configurar el formato, linting y pruebas en Deno, y luego cómo publicar tu módulo en deno.land/x y npm. Comenzaremos con una breve introducción sobre qué es Deno.