iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > JAVA >Deno 下一代JavaScript运行时
  • 605
分享到

Deno 下一代JavaScript运行时

javascript开发语言ecmascript 2023-10-18 11:10:17 605人浏览 安东尼
摘要

目录 1、简介 2、Deno 的特点 3、Deno 和 Node 的区别 4、TypeScript开箱即用

目录

1、简介

2、Deno 的特点

3、Deno 和 Node 的区别

4、TypeScript开箱即用

5、内置的基本开发工具

独立可执行文件

测试运行器

代码格式化程序

代码linter

 6、专为云而建

7、从浏览器到后端的一致代码

TC39

WinterCG

8、高性能联网

9、数百万个社区模块

10、相关框架


1、简介

Deno是为执行javascripttypescript而设计的安全运行时。这个创新的运行时出现在node. js首次发布近9年后,node.js是一个非常受欢迎的JavaScript运行时。Node.js作为JavaScript运行时,使开发人员能够在服务器端使用JavaScript,这是其广泛采用的关键因子。JavaScript是一种历史悠久的编程语言,是全球使用最广泛的语言。

此外,Node. js拥有一个充满活力和参与度的社区,提供了大量强大的工具和库,如Express.js和Socket.io,这些工具和库简化了WEB应用程序的创建。该运行时还与实时应用程序和新兴的微服务架构保持一致,这是当代web开发趋势的特征。本质上,Node.js因其适应性、用户友好性和社区坚定不移的支持而广受欢迎。 Deno 1.0于2020年5月首次亮相,由Node. js诞生背后的头脑Ryan Dahl精心制作并赋予生命。虽然Deno和Node.js有某些相似之处,但它们也表现出独特的功能。两者都充当服务器端运行时,在Deno的情况下支持TypeScript和JavaScript的执行,在Node.js的情况下支持JavaScript的执行(Node.js确实通过NPM包支持TypeScript,但不是开箱即用)。比较Deno和Node.js是不可避免的,Deno通常被视为Node.js的进化继承者。然而,Deno拥抱现代技术,使其与众不同。 虽然Node. js已经巩固了自己的地位,并在大公司和初创公司中享有信任,但Deno的存在仍然相对年轻。在撰写本文时,Deno已经三岁了(截至2023年10月),已经经历了37个版本,从1.0版到1.37版。然而,在成为Node.js的有力竞争者之前,它必须走过相当长的道路。 在许多方面,Deno可以被视为Node. js的下一代对应物。在深入研究Deno的内部运作之前,对其背景有一个基本的了解是有益的。

2、Deno 的特点

  • 默认是安全的
  • 对TypeScript和JSX的原生支持
  • 开箱即用的测试、linting、格式化等功能
  • 使用Rust和Tokio的高性能异步I/O
  • 包括一组经过审查的标准模块,保证与Deno一起工作。
  • 仅发布单个可执行文件。
  • 向后兼容Node.js和npm

目前Deno项目已超过90k的star数,有250k+活跃开发者。

3、Deno 和 Node 的区别

从它们各自的特点来进行对比。

DenoNode
数百万个社区模块数百万个社区模块
基于V8 JavaScript引擎构建基于V8 JavaScript引擎构建
默认运行时安全性无粒度运行时安全性
内置TypeScript、JSX、fORMatter、linter和测试依赖项和配置文件
易于嵌入Rust和Tokioc++实现更复杂的嵌入过程
使用Web标准api构建API覆盖范围不完整
综合标准库有限标准库

命令操作的差异:

Node.jsDeno
node file.jsdeno run file.js
ts-node file.tsdeno run file.ts
node -edeno eval
npm i -gdeno install
npm i / npm installn/a
npm rundeno task
eslintdeno lint
prettierdeno fmt
package.JSONdeno.json / deno.jsonc / import_map.json
tscdeno check ²
typedocdeno doc
jest / ava / mocha / tap / etcdeno test
nodemondeno run/lint/test --watch
nexe / pkgdeno compile
npm explaindeno info
nvm / n / fnmdeno upgrade
tsserverdeno lsp
nyc / c8 / istanbuldeno coverage
benchmarksdeno bench

4、TypeScript开箱即用

Deno原生支持TypeScript和JSX等现代JavaScript扩展,无需构建步骤或额外配置。

  • 原生TypeScript支持,零配置
  • 使用最前沿的JavaScript功能
  • Visual Studio Code中的智能感知和自动完成功能
  • 以TypeScript源代码的形式发布和分发模块

5、内置的基本开发工具

独立可执行文件

立即从您的Deno程序创建独立的可执行文件。它甚至支持其他平台的交叉编译!

创建一个文件 server.ts,内容如下所示:

Deno.serve(()=> new Response("hello world !!!"))

开始进行编译,如下所示:

 deno compile --allow-net server.ts

会在当前目前生成一个可执行文件,如下所示:

 启动服务

  • 双击点击server.exe文件,如下所示

  • 或者执行以下命令:
 ./server.exe

开始监听8000端口,在浏览器打开Http://localhost:8000/,如下所示

测试运行器

Deno提供了一个测试运行器和断言库作为运行时和标准库的一部分。

// url_test.tsimport { assertEquals } from "https://deno.land/std@0.202.0/assert/mod.ts";Deno.test("url test", () => {  const url = new URL("./foo.js", "https://deno.land/");  assertEquals(url.href, "https://deno.land/foo.js");});
deno test url_test.ts

运行以上命令,因为引入的文件是远程文件,所以先进行下载到本地,并进行缓存

我们查看以下对应的路径。运行如下命令:

deno info

可以查看下载的文件,转换成了对应的js文件,如下所示:

 可以打开对应的js文件,最下面有对应的映射路径,

浏览器打开有映射的url地址,如下所示:

代码格式化程序

Deno附带了一个内置的代码格式化程序,可以自动格式化以下文件:

文件类型扩展
JavaScript.js
TypeScript.ts
JSX.jsx
TSX.tsx
markdown.md.markdown
JSON.json
JSONC.jsonc

代码linter

Deno附带内置代码linter,可帮助您避免错误和坏代码。

deno lint --watch

 6、专为云而建

无论您是使用我们闪电般的Deno Deploy部署,还是在其他云提供商上部署,Deno都能简化您的体验。它不仅仅是一个运行时;它是为云时代重新设计的JavaScript,提供了传统容器的无缝替代品。

Deno Deploy部署将最简单的方式来托管您的Deno项目。主要有以下特点:

  • 全球分布式
  • 在几秒钟内部署
  • 内置键/值数据库
  • 集成GitHub for CI/CD
  • 运行静态站点、应用程序和边缘函数

7、从浏览器到后端的一致代码

​Deno尽可能提供Web标准API,最大限度地提高浏览器和服务器之间的代码重用率,并确保代码的未来性。 Deno积极参与TC39和WinterCG,以帮助推动网络向前发展。我们致力于在开放的环境中合作构建JavaScript的未来。 ​

TC39

TC39是一个由JavaScript开发人员、实现人员、学者等组成的团队,他们与社区合作维护和发展JavaScript的定义。

WinterCG

这个社区组旨在为JavaScript运行时提供一个空间,以便在API互操作性方面进行协作。我们专注于记录和改进Web平台API跨运行时(特别是非浏览器)的互操作性。这是通过运行时之间的讨论,规范场所(WHATWG,W3C)中对新Web API和当前Web API的更改的建议以及现有运行时行为的文档来完成的。

8、高性能联网

开箱即用支持:

  • HTTPS(加密)
  • websockets
  • HTTP2
  • 自动响应体压缩
Deno和Node的吞吐量对比:

Deno 1.36.1和Node 18.12.1中的“hello world”Web服务器的每秒请求量在linux 8核Intel Xeon E-2378 G机器上使用wrk测量。

9、数百万个社区模块

Deno向后兼容Node.js内置API和npm上的200多万个模块。将Node.js生态系统的精华带到Deno。

10、相关框架

Fresh是一个现代的Web框架,为边缘服务器上的Deno运行时从头设计。

  • 专为快速、可靠和简单而设计
  • 实时渲染
  • 基于岛的客户端水化 实现最大的交互性
  • 零运行时开销 - 默认情况下不向客户端发送JavaScript

SaaSKit模板应用建立在Fresh之上,包括身份验证、计费等。

  • ​使用oAuth 2.0进行用户身份验证
  • 通过Stripe执行的经常性付款
  • 预先构建的会话和授权
  • 使用Deno KV实现快速、轻量级的持久性

来源地址:https://blog.csdn.net/u014388408/article/details/133749797

--结束END--

本文标题: Deno 下一代JavaScript运行时

本文链接: https://www.lsjlt.com/news/431267.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Deno 下一代JavaScript运行时
    目录 1、简介 2、Deno 的特点 3、Deno 和 Node 的区别 4、TypeScript开箱即用 ...
    99+
    2023-10-18
    javascript 开发语言 ecmascript
  • Windows下安装Bun像Node或Deno的现代JS运行时
    目录背景环境准备安装 Bun总结背景 最近前端工具链又火了一个项目 Bun,可以说内卷非常严重。Bun 是一个新的 JavaScript 运行时,内置了打包器、转译器、任务运行器和 ...
    99+
    2024-04-02
  • Node.js V8 引擎的未来之路:下一代 JavaScript 运行时的愿景
    持续性能优化 性能一直是 V8 引擎的核心关注点。未来,V8 将继续专注于优化性能,提高执行速度和减少内存占用。这包括改进编译器、垃圾回收器和其他关键组件。 更好的并发支持 随着 Web 应用程序变得越来越复杂,对并发支持的需求也越来越高...
    99+
    2024-04-02
  • Bun入门学习教程吊打Node或Deno的现代JS运行时
    目录前言什么是 Bunall-in-one为什么用 Bun性能测试结果为什么快内置兼容性快速上手Mac/Linux 上安装windows上安装Bun 的常见功能使用1. 当做包管理器...
    99+
    2024-04-02
  • 如何运行javascript代码
    Javascript是一种非常流行的编程语言,在网页开发和动态交互方面被广泛应用。本文将介绍如何在不同的环境中运行Javascript代码,包括浏览器、Node.js和命令行界面。一、在浏览器中运行Javascript代码在浏览器中运行Ja...
    99+
    2023-05-14
  • 0x800a138f - JavaScript运行时错误
    0x800a138f是一个JavaScript运行时错误代码,表示"无效的属性名称"。这个错误通常发生在尝试访问一个不存在...
    99+
    2023-08-18
    JavaScript
  • pycharm怎么运行一行代码
    使用 pycharm 运行一行代码的方法:将光标置于要运行的行上。按下快捷键 ctrl/cmd + enter。右键单击该行并选择“run line”。单击编辑器顶部工具栏中的“run ...
    99+
    2024-04-25
    python pycharm
  • 如何在Python退出时强制运行一段代码
    这篇文章将为大家详细讲解有关如何在Python退出时强制运行一段代码,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。设想这样一个场景,你要给一个项目开发测试程序,程序开始运行的时候,会创建初始...
    99+
    2023-06-03
  • python获取代码运行时间
    有的时候,操作大文件,或者取数,要很久,我们给脚本首尾添加一段代码就知道,这段代码整体的大致运行时间了。 import time start =time.clock() #中间写上代码块 end = time.clock() ...
    99+
    2023-01-31
    代码 时间 python
  • 下载python后怎么运行代码
    在安装 python 后,可以通过以下步骤运行代码:打开 python 解释器;键入代码;运行代码。 如何在安装 Python 后运行代码 快速回答: 在安装 Python 后,可以通...
    99+
    2024-04-02
  • javascript可以在什么环境下运行
    本文小编为大家详细介绍“javascript可以在什么环境下运行”,内容详细,步骤清晰,细节处理妥当,希望这篇“javascript可以在什么环境下运行”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,...
    99+
    2024-04-02
  • JavaScript运行时Bun的性能怎么样
    这篇文章主要介绍“JavaScript运行时Bun的性能怎么样”,在日常操作中,相信很多人在JavaScript运行时Bun的性能怎么样问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大...
    99+
    2024-04-02
  • Linux下怎么定时运行php脚本
    小编给大家分享一下Linux下怎么定时运行php脚本,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!安装crontabyum install crontabs说明: /sbin/service crond start //启...
    99+
    2023-06-28
  • 怎么实现在Python退出时强制运行一段代码
    这篇文章主要讲解了“怎么实现在Python退出时强制运行一段代码”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么实现在Python退出时强制运行一段代码”吧!设想这样一个场景,你要给一个项...
    99+
    2023-06-16
  • JavaScript 评测代码运行速度的案例代码
    目录JavaScript 评测代码运行速度一、使用 performance.now() API二、使用 console.time() 和 console.timeEnd()三、使用第...
    99+
    2023-02-10
    js 测试代码运行速度 js测试代码
  • Python运行时修改业务SQL代码
    目录前记1.缘起2.侵入库3.获取商户ID4.修改SQL前记 在项目的演变过程中,有时可能会诞生一些需要奇怪的临时需求,这些需求会涉及到所有的SQL,但开发时间上却不允许整个项目的所...
    99+
    2024-04-02
  • JavaScript运行时报错0x800a138f怎么解决
    在 JavaScript 中,0x800a138f 错误通常是由于语法错误、变量未定义或文件路径错误等问题引起的。要解决这...
    99+
    2023-08-19
    JavaScript
  • Android 13运行时权限变更一览
    本文同步发表于我的微信公众号,扫一扫文章底部的二维码或在微信搜索 郭霖 即可关注,每个工作日都有文章更新。 要不了多久,Android 13正式版就要发布了。 其实就在几个月前,我写了一篇关于Android 13首个开发者体验版的全面...
    99+
    2023-08-19
    android Android 13 运行时权限
  • 考虑以下 Python 代码,如果运行结
      l = [] for i in xrange(10):   l.append({‘num’:i}) print l在考虑以下代码,运行结束后的结果是什么? l = [] a = {‘num’:0} for i in xrange(10...
    99+
    2023-01-30
    代码 Python
  • 用pycharm怎么运行一个python代码
    在 pycharm 中运行 python 代码需要以下步骤:确保 pycharm 和 python 解释器已正确设置。打开要运行的代码文件。选择用于运行代码的运行配置。通过“运行文件”或...
    99+
    2024-04-17
    python pycharm
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作