Deno 下一代JavaScript运行时

这篇具有很好参考价值的文章主要介绍了Deno 下一代JavaScript运行时。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

1、简介

2、Deno 的特点

3、Deno 和 Node 的区别

4、TypeScript开箱即用

5、内置的基本开发工具

独立可执行文件

测试运行器

代码格式化程序

代码linter

 6、专为云而建

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

TC39

WinterCG

8、高性能联网

9、数百万个社区模块

10、相关框架


1、简介

Deno是为执行JavaScript和TypeScript而设计的安全运行时。这个创新的运行时出现在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 的区别

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

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

命令操作的差异:

Node.js Deno
node file.js deno run file.js
ts-node file.ts deno run file.ts
node -e deno eval
npm i -g deno install
npm i / npm install n/a
npm run deno task
eslint deno lint
prettier deno fmt
package.json deno.json / deno.jsonc / import_map.json
tsc deno check ²
typedoc deno doc
jest / ava / mocha / tap / etc deno test
nodemon deno run/lint/test --watch
nexe / pkg deno compile
npm explain deno info
nvm / n / fnm deno upgrade
tsserver deno lsp
nyc / c8 / istanbul deno coverage
benchmarks deno bench

4、TypeScript开箱即用

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

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

5、内置的基本开发工具

独立可执行文件

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

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

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

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

 deno compile --allow-net server.ts

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

Deno 下一代JavaScript运行时,Deno,javascript,开发语言,ecmascript

 启动服务

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

Deno 下一代JavaScript运行时,Deno,javascript,开发语言,ecmascript

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

Deno 下一代JavaScript运行时,Deno,javascript,开发语言,ecmascript

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

Deno 下一代JavaScript运行时,Deno,javascript,开发语言,ecmascript

测试运行器

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

// url_test.ts
import { 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 下一代JavaScript运行时,Deno,javascript,开发语言,ecmascript

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

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

deno info

Deno 下一代JavaScript运行时,Deno,javascript,开发语言,ecmascript

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

Deno 下一代JavaScript运行时,Deno,javascript,开发语言,ecmascript 可以打开对应的js文件,最下面有对应的映射路径,

Deno 下一代JavaScript运行时,Deno,javascript,开发语言,ecmascript

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

Deno 下一代JavaScript运行时,Deno,javascript,开发语言,ecmascript

代码格式化程序

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 下一代JavaScript运行时,Deno,javascript,开发语言,ecmascript

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之上,包括身份验证、计费等。文章来源地址https://www.toymoban.com/news/detail-715444.html

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

到了这里,关于Deno 下一代JavaScript运行时的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Web3和低代码开发:下一代Web应用开发的合作与创新

    Web3作为区块链技术的一部分,被认为是下一代互联网技术的主要方向。与此同时,低代码开发作为快捷而高效的软件创建工具,也一直得到广泛关注。那么,Web3和低代码开发如何合作,激发出下一代Web应用开发的新生力量呢? 当我们谈到Web3时,我们一般指代分布式互联网的

    2024年02月05日
    浏览(51)
  • PowerBuilder编程新思维10.5:外传2(PowerPlume下一代开发解决方案)

    万里归来年愈少   PB编程新思维10.5:外传2(PowerPlume下一代解决方案)   今天我们就来盘点一下,PB下一代开发的所有技术可能性。所谓下一代开发技术,就是指脱离或半脱离PBVM的应用开发技术,主要指后端。       前端PB+JSON 前端PB+BLOB WEB 后端PBVM PbNode/Pbgo PbniServ,PowerSe

    2024年02月08日
    浏览(51)
  • 任天堂开发全新独立VR设备,或为下一代主机?将提供混合现实体验

    根据爆料人Nash Weedle在X平台上的发文,我们得知任天堂正在秘密开发一款全新的独立VR设备,该设备将拥有一块MicroLED屏幕,并且独立于任天堂传闻中的下一代主机。与此同时,谷歌也参与了这款VR产品的研发工作。 这一新的VR设备被设计成适合家庭多人使用,它将提供混合现

    2024年02月09日
    浏览(41)
  • OpenAI 推出用于下一代对话式 AI 开发的 ChatGPT 和 Whisper API

    人工智能已经成为技术行业的推动力,使机器能够学习和执行以前被认为是人类独有的任务。领先的 AI 研究机构 OpenAI 一直走在这场革命的最前沿,开发可以处理自然语言并生成类似人类文本的强大模型。其中一个模型是 ChatGPT API,它可以对文本输入生成连贯且上下文相关的

    2024年02月09日
    浏览(56)
  • 下一代边缘计算技术在哪里?

    扫描文末二维码,立刻 免费 报名 云网一体, 超大规模流量下 边缘云 的架构与技术揭秘 伴随超高清视频时代的开启,热点赛事、晚会直播等特殊场景的巨大流量对业务的带宽储备、节点资源、流量调度和安全保障能力提出了新的挑战。 火山引擎边缘云基于抖音世界杯、央

    2024年02月15日
    浏览(61)
  • Android 下一代架构指南:DDD

    移动端架构与网站架构的区别是什么?网易新闻客户端的架构演进历程是怎样的?为什么要选择 DDD 思想来指导重构?DDD 落地中应当关注哪些方面?带着这些问题我们来看下文。(节选自网易新闻App架构重构实践) 当前,大多数移动开发团队选择以 MVP 作为业务层的核心架构

    2023年04月10日
    浏览(60)
  • 边缘计算:下一代计算模式的突破

      随着物联网、人工智能和大数据等技术的不断发展,计算需求变得越来越复杂,传统的云计算模式已经难以满足快速增长的数据处理需求。在这样的背景下,边缘计算作为一种全新的计算模式崭露头角,为我们带来了更加灵活、高效的解决方案。本文将深入探讨边缘计算的

    2024年02月12日
    浏览(68)
  • 下一代网络爬虫:AI agents

    下一代网络爬虫是爬虫级 AI agents。 由于现代网页的复杂性,现代爬虫都倾向于使用高性能分布式 RPA,完全和真人一样访问网页,采集数据。由于 AI 的成熟,RPA 工具也在升级为 AI agents。因此,网页爬虫的发展趋势是爬虫级智能体(AI agents),或者我喜欢称为 数字超人 。 互联

    2024年01月22日
    浏览(64)
  • 下一代Windows命名为Win 11?微软的下一步要来了

    这包括一个新的开始菜单,新的系统图标,文件资源管理器的改进,以及结束Windows 95时代的图标,圆角和对内置Windows应用程序的更新也在计划之中。 除了用户界面之外,Windows的重大变化似乎也在稳步进行中。微软似乎准备解决很多挥之不去的问题,计划对多个显示器上的应

    2024年04月12日
    浏览(52)
  • 下一代存储解决方案:湖仓一体

    文章首发地址 湖仓一体是将数据湖和数据仓库相结合的一种数据架构,它可以同时满足大数据存储和传统数据仓库的需求。具体来说,湖仓一体可以实现以下几个方面的功能: 数据集成: 湖仓一体可以集成多个数据源,包括结构化和非结构化数据,例如传统关系型数据库、

    2024年02月10日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包