Deno 2.0平台可用,由Node.js作者开发

Deno 2.0 正式发布,这是一个使用 V8 引擎(Chromium 内核浏览器所采用的引擎)独立运行 JavaScript 和 TypeScript 服务器端应用程序的平台。Deno 项目由 Node.js 的创建者 Ryan Dahl 开发,旨在提供更安全的环境并消除 Node.js 架构中的概念性缺陷。为了提高安全性,V8 引擎封装器采用 Rust 编写,并使用 Tokio 框架进行非阻塞请求处理。项目代码以 MIT 许可证发布。已准备好构建版本。 Linux, Windows и macOS.

在准备新分支时,主要关注的是与旧的 JavaScript 基础设施的兼容性,以及在不影响安全性的情况下扩展支持的 JavaScript 项目的范围。其中的变化:

  • 实现了与 Node.js 和 npm 的向后兼容性,允许您运行为 Node.js 创建的未修改的应用程序。 Node.js 支持还可以逐步将现有项目从 Node.js 迁移到使用 Deno,或者通过在将包导入到 deno.json 时指定“npm:”说明符,将依赖项从 NPM 连接到 Deno 项目。
  • 添加了对 Node.js 中使用的 package.json 文件和 node_modules 目录的本机支持。
  • 提供对通过“.npmrc”文件定义的私有 NPM 存储库的支持。
  • 添加了对流行 JavaScript 框架的支持,例如 Next.js、Astro、Remix、Angular、SvelteKit 和 QwikCity。
  • 添加了对 npm 工作区 (workspace) 和 mono 存储库 (monorepo) 的支持,并单独处理依赖项。
  • 添加了新的包管理命令:“deno install”用于安装依赖项,“deno add”用于将包添加到 package.json 或 deno.json,“deno remove”用于删除包。值得注意的是,当缓存中没有包时,“deno install”比 npm 快约 15%,当包在缓存中时,速度比 npm 快 90%(支持 node_modules 及其自身的全局缓存)。
  • 标准库已经稳定。
  • 提供长期支持周期 (LTS)。
  • 引入了 JSR - 一个包含 JavaScript 和 TypeScript 库的存储库,可在各种 JavaScript 运行时中使用。
  • “deno fmt”命令现在能够以 HTML、CSS 和 YAML 格式格式化内容。
  • 添加了对 Node.js 特定规则的支持并修复了“deno lint”命令。
  • “deno test”命令提供了运行使用 node:test 创建的测试的能力。
  • “deno task”命令现在支持通过 package.json 运行脚本。
  • “denocompile”命令现在能够对代码进行数字签名。
  • “denoserve”命令使用多个 CPU 核心实现 HTTP 服务器操作的并行化。
  • “denocoverage”命令现在支持以 HTML 格式保存报告。
  • 已进行性能优化。
    Deno 2.0平台可用,由Node.js作者开发

Deno 的主要特点:

  • 面向安全的默认配置。 默认情况下禁用文件访问、网络和对环境变量的访问,必须显式启用。 应用程序默认运行在隔离的沙箱环境中,在未授予显式权限的情况下无法访问系统功能;
  • 除了 JavaScript 之外,还内置了对 TypeScript 的支持。 对于类型检查和 JavaScript 生成,使用标准的 TypeScript 编译器,这导致与 V8 中的 JavaScript 解析相比性能有所下降;
  • 运行时以单个独立可执行文件(“deno”)的形式出现。 要使用 Deno 运行应用程序,您只需为您的平台下载一个可执行文件,大小约为 40 MB,该文件没有外部依赖项,不需要在系统上进行任何特殊安装。 而且,deno 不是一个单体应用程序,而是 Rust crate 包(deno_core、rusty_v8)的集合,可以单独使用;
  • 启动程序以及加载模块时,可以使用 URL 寻址。 例如,要运行welcome.js程序,您可以使用命令“deno https://deno.land/std/examples/welcome.js”。 来自外部资源的代码被下载并缓存在本地系统上,但永远不会自动更新(更新需要使用“--reload”标志显式运行应用程序);
  • 在应用程序中通过HTTP高效处理网络请求;该平台专为创建高性能网络应用程序而设计;
  • 能够创建可以在 Deno 和常规 Web 浏览器中执行的通用 Web 应用程序;
  • 存在一组标准模块,其使用不需要绑定到外部依赖项。 标准集合中的模块已经过额外的审核和兼容性测试;
  • 除了运行时环境外,Deno 平台还充当包管理器,允许您在代码中通过 URL 访问模块。例如,要加载一个模块,您可以在代码中指定“import * as log from "https://deno.land/std/log/mod.ts"”。从外部加载的文件 服务器 通过 URL 进行缓存。链接到模块版本是通过在 URL 中指定版本号来确定的,例如“https://unpkg.com/liltest@0.0.5/dist/liltest.js”;
  • 专注于Web标准的使用,支持Promise、fetch和ECMAScript模块。
  • 与 NPM 存储库中托管并为 Node.js 平台创建的包兼容。
  • 该结构包括一个集成的依赖性检查系统(“deno info”命令)和一个代码格式化实用程序(deno fmt);
  • 所有应用程序脚本都可以合并到一个 JavaScript 文件中。

来源: opennet.ru

为具有 DDoS 保护、VPS VDS 服务器的站点购买可靠的主机 🔥 购买具备 DDoS 防护的可靠网站托管服务,包括 VPS 和 VDS 服务器 | ProHoster