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.

This talk has been presented at Node Congress 2024, check out the latest edition of this JavaScript Conference.

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
Deno aims to provide Node.js compatibility to make migration smoother and easier. While Deno can run apps and libraries offered for Node.js, not all are supported yet. There are trade-offs to consider, such as incompatible APIs and a less ideal developer experience. Deno is working on improving compatibility and the transition process. Efforts include porting Node.js modules, exploring a superset approach, and transparent package installation from npm.
Javascript Debería Venir Con Baterías
React Day Berlin 2023React Day Berlin 2023
30 min
Javascript Debería Venir Con Baterías
JavaScript Should Come With Batteries: Deno is a next-generation JavaScript runtime that addresses the lack of built-in tooling in JavaScript. It provides a secure and simple way to develop applications with built-in testing, linting, formatting, and a language server for VS Code. Deno is compatible with Node.js and NPM, supports web standard APIs, and allows code portability between frontend and server. It also offers features like a built-in database, a key-value store, and transparent monetization with Deno Deploy.
Deno 2.0
Node Congress 2023Node Congress 2023
36 min
Deno 2.0
Top Content
The Talk discusses forced optimization with Node and Deno, with Deno aiming to pursue the same goals in a more expansive and modern way. Deno has built-in support for NPM and enforces security constraints. It also has a key-value database called Deno KV, which will be a core part of the Deno 2 API. Deno Deploy is a serverless Edge Functions platform powered by FoundationDB, optimized for fast reading and ideal for building eCommerce sites or application servers at the edge. Deno 2.0 is coming soon with more features under development.
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
Today's Talk introduces Fresh, a full-stack web framework for Deno, and covers its features, such as static files, routes, and data-fetching. It also discusses middleware, error pages, and styling options. The Talk explains the Islands architecture used by Fresh to enable client interactivity. The demo showcases the use of hybrid routes and islands components, and resources for Fresh, Deno, Preact, TypeScript, and web standards are provided.
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
The Talk explores the magic behind Node.js and delves into its components, including V8, libuv, and the C++ bridge. It discusses the workflow and execution process, the use of NodeMod, and the understanding of console functions. The Talk also covers Node.js functions and scheduling, the introduction of runtimes, and the collaboration between JavaScript runtimes. It concludes with insights on content production, the choice of Node.js, and the inspiration behind it.
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
Deno is a modern runtime for TypeScript and JavaScript that runs out of the box and is secure by default. The Talk covers building a greeting message library with Deno, compiling Deno libraries for Node consumers, setting up the editor and writing code, writing tests and running them with dnotest, code formatting, linting, and publishing, publishing to NPM and running tests, and building and publishing the NPM package. The speaker emphasizes the ease of use and integration of Deno's tooling system.

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.
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.