Introducción: DenoJS es un entorno de ejecución seguro para JavaScript y TypeScript basado en el motor de JavaScript V8 (desarrollado por The Chromium Project, Google), el lenguaje de programación Rust y Tokio , que es un entorno de ejecución asíncrono para Rust. NodeJS también es un tiempo de ejecución de JavaScript que utiliza el motor V8. DenoJS 1.0.0 se lanzó el 13 de mayo de 2020 y fue creado por Ryan Dahl, quien también es el creador de NodeJS.
DenoJS pretende ser un entorno de secuencias de comandos productivo y seguro para proporcionar una experiencia fácil para los desarrolladores de la era moderna. Los creadores de NodeJS habían expresado varias preocupaciones sobre el funcionamiento de NodeJS. Habían expresado su preocupación por la seguridad de Node, cómo Node manejaba los paquetes y otras API heredadas dentro de Node que nunca cambiarán, entre otras cosas. Node se lanzó en 2009 y, desde entonces, JavaScript ha cambiado mucho. Querían hacer una mejor versión de NodeJS con herramientas y API modernas de JavaScript. También querían algo compatible con los entornos de navegador y servidor y, por lo tanto, surgió la realización de DenoJS.
Ventajas y características de DenoJS:
- Seguro por defecto: una de las mayores ventajas de DenoJS es que es seguro por defecto. Se ejecuta en un entorno Sandbox y, a menos que se permita específicamente, Deno no puede acceder a los archivos, el entorno o la red, lo que no es el caso en NodeJS. Para acceder al entorno o la red, debemos agregar explícitamente indicadores de seguridad y permisos al ejecutar una aplicación Deno. Si no se agregan las banderas respectivas, dará un error de Permisos denegados al ejecutar la aplicación. La lista de indicadores de seguridad se proporciona a continuación.
- –allow-write: Permitir acceso de escritura
- –allow-read: Permitir acceso de lectura
- –allow-net: Permitir acceso a la red
- –allow-env: Permitir acceso al entorno
- –allow-plugin: Permitir la carga de complementos externos
- –allow-hrtime: Permitir medición de tiempo de alta resolución
- –allow-run: Permitir que se ejecuten los subprocesos
- -A: Permitir todos los permisos
- Texto TypeScript : DenoJS es compatible con Texto TypeScript listo para usar. Podemos usar TypeScript o JavaScript mientras desarrollamos aplicaciones de Deno ya que el compilador de TypeScript también se incluye dentro de Deno. Por lo tanto, simplemente podemos crear un nuevo archivo .ts y se compilará y ejecutará con éxito con Deno.
- Archivo ejecutable único: DenoJS se envía como un único ejecutable sin dependencias. Deno intenta proporcionar una herramienta independiente para generar secuencias de comandos rápidamente de funciones complejas. Al igual que un navegador web, sabe cómo buscar e importar código externo. En Deno, un solo archivo puede definir un comportamiento complejo sin ninguna otra herramienta. Dada una URL a un programa Deno, se puede ejecutar con nada más que los 15 MB de memoria. Deno asume explícitamente el rol de administrador de paquetes y tiempo de ejecución.
- Paquetes descentralizados: uno de los principales inconvenientes de NodeJS es cómo se manejan las dependencias con los paquetes NPM. Por ejemplo, si queremos usar Express con NodeJS, simplemente instalaríamos usando npm y la dependencia iría a la carpeta node_modules . El problema es que cuando se instala Express , simplemente no es el paquete Express. También incluye las dependencias de Express. Por lo tanto, terminamos con muchas carpetas dentro de node_modules , lo que dificulta enormemente el proceso de manejo de paquetes externos y aumenta el tamaño de la aplicación. DenoJS ofrece paquetes descentralizados, es decir, Deno no usa npm. No hay paquetes NPM para Deno y no hay un archivo package.json ni una carpeta de dependencias de node_modules . Utiliza un protocolo estándar compatible con el navegador para cargar módulos a través de URL . Importa módulos a los que se hace referencia a través de URL o rutas de archivos desde la aplicación. Si queremos importar y usar un módulo externo, simplemente podemos importarlo desde la URL:
https://deno.land/x/[Package_Name]
- Compatibilidad del navegador: DenoJS fue diseñado para ser compatible con el navegador. El conjunto de scripts de Deno que están escritos completamente en JavaScript y no usan el espacio de nombres global de Deno también se puede ejecutar usando Deno en un navegador web moderno sin ningún cambio de código. Deno también sigue las API de JavaScript de navegador estandarizadas. Dado que Deno es compatible con el navegador, tenemos acceso y podemos usar API de JavaScript como fetch . También tenemos acceso al objeto de ventana de JavaScript global.
- Módulos ES: a diferencia de NodeJS, Deno incorpora sintaxis JavaScript moderna. Deno usa módulos ES (la sintaxis de importación ) y no es compatible con la sintaxis requerida común de JavaScript utilizada en NodeJS. Todos los módulos ES externos se importan a través de URL como en GoLang , por ejemplo:
import { serve } from "https://deno.land/x/http/server.ts"
Esta importación se utiliza para crear un servidor HTTP simple en Deno. Otra característica clave de Deno es que después de importar este módulo, se almacena en caché en el disco duro durante la carga. El código remoto que se obtiene se almacenará en caché en el disco duro cuando se ejecute por primera vez, y nunca se actualizará hasta que el código se ejecute con el indicador –reload . De acuerdo con la documentación oficial de DenoJS, los módulos y archivos cargados desde URL remotas están destinados a ser inmutables y almacenables en caché .
- Módulos estándar: Deno tiene un amplio conjunto de módulos de biblioteca estándar que son auditados por el equipo de Deno y están garantizados para funcionar con Deno. Estos módulos estándar están alojados aquí y se distribuyen a través de URL como todos los demás módulos ES que son compatibles con Deno. Algunas de estas bibliotecas estándar son fs , datetime , http , etc., muy parecidas a los módulos de NodeJS. Deno también puede importar módulos desde cualquier ubicación en la web, como GitHub, un servidor web personal o una CDN (red de entrega de contenido). Hay una mayor cantidad de módulos estándar, así como módulos externos que se agregan a Deno todos los días.
- Espera de nivel superior: otra característica fundamental e importante de Deno es la sintaxis de espera de primer nivel/primera clase . En Deno, podemos usar la sintaxis Await en el ámbito global sin tener que envolverla en la función asíncrona . Además, todas las acciones asíncronas en Deno devuelven una promesa que puede eliminar/evitar el infierno de devolución de llamada al que puede conducir el Node debido a las devoluciones de llamada anidadas.
- Utilidades: Deno proporciona pruebas integradas y tiene utilidades integradas como un inspector de dependencias (deno info) y un formateador de código (deno fmt) . Deno también permite la ejecución directa de WebAssembly WASM Binaries. NodeJS es conocido por sus capacidades de transmisión de datos y HTTP, sin embargo, Deno puede servir HTTP de manera más eficiente que Node.
Instalación de DenoJS: para conocer las diferentes formas de instalar DenoJS, consulte este enlace . Instalaremos Deno usando Chocolatey para Windows . Para instalar Deno usando Chocolatey, ejecute el siguiente comando:
choco install deno
Esto instalará Deno en el sistema local en el directorio predeterminado $HOME/.deno . Este es el directorio base predeterminado de Deno y se hace referencia a través de la variable ambiental DENO_DIR .
Primeros pasos: para verificar la instalación de DenoJS, ejecute el comando:
deno --version
Esto debería proporcionarle la versión de TypeScript, V8 Engine y Deno.
Si simplemente ejecutamos el comando:
deno
Ejecuta el comando:
deno repl
Lo que abre la interfaz REPL que significa READ EVAL PRINT LOOP , lo que significa que podemos escribir código JavaScript básico desde la línea de comandos y compilará, ejecutará e imprimirá el resultado.
Ejecutaremos un Deno Script simple en nuestro local, ubicado en la URL estándar deno.land/std/ . Podemos ejecutar directamente este Script desde la URL remota usando el Comando:
deno run https://deno.land/std/examples/welcome.ts
Este es el enlace al script welcome.ts en los ejemplos oficiales de documentos de Deno. Podemos ver el código fuente simplemente navegando a esa URL. El comando deno run compila el Script y lo ejecuta para mostrar el resultado en su consola. Deno sabe automáticamente si estamos ejecutando este script a través de la URL o simplemente viéndolo en el navegador.
Para instalar el script en la máquina local, podemos ejecutar el comando:
deno install https://deno.land/std/examples/welcome.ts
Esto instalará el script welcome.ts en el directorio $Home/.deno/bin . El archivo se descargará como archivo .cmd en Windows . En caso de que la instalación ya exista, debemos sobrescribirla explícitamente.
Nota: Ejecute CMD con privilegios de administrador para evitar errores innecesarios con Deno.
Crearemos un archivo welcome.ts en la máquina local y lo ejecutaremos con Deno.
bienvenido.ts
Javascript
console.log("Welcome to GeeksForGeeks");
Para ejecutar este archivo, ejecute el comando:
deno run welcome.ts
Producción:
Publicación traducida automáticamente
Artículo escrito por radheshkhanna y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA