千家信息网

Deno会取代NodeJS吗

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章主要介绍"Deno会取代NodeJS吗",在日常操作中,相信很多人在Deno会取代NodeJS吗问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"Deno会取代No
千家信息网最后更新 2026年11月01日Deno会取代NodeJS吗

这篇文章主要介绍"Deno会取代NodeJS吗",在日常操作中,相信很多人在Deno会取代NodeJS吗问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"Deno会取代NodeJS吗"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

一、从头说起

2018年,Ryan在一次演讲中谈到了他认为Node存在的10大问题。演讲的最后,他展示了他当时正在构建的、还只是一个小系统的Deno,也就是大家口中的Node.js 2.0版本,他对原有版本做了改进,也更加安全。

两年后,Deno 1.0正式发布。其后端有一个全新的JavaScript运行环境,但它是用Rust编写的,而不是用C++。它以Tokio平台为基础(该平台为JavaScript提供其所需要的异步运行环境),仍可运行Google V8引擎。

二、还有什么新鲜的吗?

我们不仅仅是在讨论一个和现有的Node.js完全兼容的新的JavaScript运行环境,Ryan还利用了这个机会,在Deno中加入了一些他认为在早期创作中缺失的东西。

1. 安全集成

默认设置中,Node.js允许用户访问所有内容,这意味着你可以读写文件系统、发出请求、访问环境变量等等。尽管作为开发人员,拥有这种访问权限是有利的,但如果在编写自己的代码时不够小心,也会带来安全风险。

因此,Deno使用命令行参数来启用或禁用对不同安全特性的访问。如果你需要让你的脚本访问/etc 文件夹,可以输入:

deno --allow-read=/etcmyscript.ts

你的代码将从文件夹中读取,你会得到一个安全异常提示。这类似于其他平台处理安全性的方式。

如果你是Android用户,你一定已经收到了很多应用程序的要求,允许它们访问你手机中的不同系统(如联系人、电话、文件夹等)。这里也一样。通过在执行脚本的命令行中使用这些标志,可以提供代码所需的权限。

2. 一个更完整的标准库

自Node的第一个版本开始,JavaScript就已经改进了它的标准库,但是与其他语言相比,它还有很多不足。

Deno也试图改进这一点,据说它会拥有一个非常完整的标准库,能让开发人员使用官方工具来执行基本任务,且只需使用外部库(alaNPM)来完成复杂的任务。

从本质上讲,Deno开箱即用,它的自带工具可以为终端文本添加颜色、处理外部数据结构(如二进制、csv、yaml和其他数据结构)、生成UUID,甚至编写websockets。还有其他可用的更基本模块,比如文件系统访问、日期帮助器函数、与http相关的函数等等。

3. 集成版TypeScript

如果你是TypeScript的忠实用户,那么不需要外部工具,Deno就会帮你搞定很多工作,默认情况下JavaScript的转换在内部即可完成,这一点无需担心。

尽管默认情况下Deno会做很多工作,但你可以使用自己的tsconfig.json文件覆盖配置:

deno run -c tsconfig.json[your-script.ts]

默认模式是使用严格模式,因此,进行任何欠考虑的编码操作都会立即收到警告。

4. 不再需要NPM和node_modules文件夹

这是个大问题。会不会太臃肿了?这种分散依赖关系的方式是错误的吗?这自然是Node最具争议的一大方面,Deno决定完全摆脱它。

那Deno是如何处理依赖项的呢?目前的方法是,允许你从任何地方索取模块。换言之,你可以这样做:

import * as log from"https://deno.land/std/log/mod.ts";

你无需拥有自己的集中存储库,但必须谨慎操作,因为从无法控制的第三方源导入模块会让你处于开放暴露的状态。

事实上,我们的好朋友package.json也不见了。现在通过在名为deps.ts的文件中列出一系列模块及其各自的URL,来简化依赖性管理。你肯定会问,版本控制呢?你可以在URL上指定包版本。虽然不是很方便,但行得通。

一个正常的deps.ts文件是这样的:

export { assert } from"https://deno.land/std@v0.39.0/testing/asserts.ts"; export { green, bold } from"https://deno.land/std@v0.39.0/fmt/colors.ts";

这将重新导出模块。如果你想更改模块的版本,需对URL进行相应的简化修改。在第一次执行脚本时,导入的代码会被缓存,直到再次使用--reload 标志运行为止。

5. 还有别的吗?

Deno还有其他特点,比如它拥有了更多的"开箱即用"工具,包括测试运行器、调试器、文件监视程序等。但话说回来,其中一些只是由语言提供的API接口,你需要编写出自己的工具才能使用它们。

以 Deno.watchFs提供的文件监视器API接口为例,如果你正在寻找与nodemon类似的解决方案,那你必须自己完成。下面是解决类似问题的23行脚本:

三、Deno会很快取代Node.js吗?

老实说,不一定。有些人自Node.js 0.10版本推出就开始使用Node js,甚至将其应用于生产。我们过去之所以这样做是因为没有与其类似的系统。

PHP、Python甚至Ruby都无法在后端与JavaScript和异步I/O模型相提并论,更不用说Java和. NET了。这些年来,Node和JavaScript不断改进升级,以满足业界需求。

它是完美的吗?当然不是。和生活中的其他事情一样,在编程语言方面也很难做到十全十美。

Deno也不例外。目前它还只是一个计划用2年时间达成目标的想法。它还没有在生产系统中试验和测试过,没有被审查过,也没有应用于奇怪的、意想不到的使用情况,我们无法了解它是如何处理这些极端情况的。

也许在一年后,我们会听到公司分享他们有关应用Deno的经验、他们如何解决新发现的缺陷,最终,它背后的群体将使用Deno,让它"物尽其用"。而在此之前,Deno还只是早期使用者的玩具。

它会取代Node吗?谁知道呢,一起拭目以待吧!

到此,关于"Deno会取代NodeJS吗"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

文件 版本 安全 模块 系统 工具 运行 代码 只是 情况 文件夹 环境 脚本 问题 学习 应用 平台 更多 标准 用户 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技名片 河南云网互联网络科技有限公司 广州紫鲸互联网科技有限公司 互联网科技公司起名 深圳恒合互联网络科技有限公司 互联网科技会 没上市的科技互联网公司 互联网科技作文 互联网科技股票 杭州互联网科技公司 伴你行互联网科技有限公司 无锡溥仪互联网科技有限公司 太原新华互联网科技学校怎么样 杭州披云加互联网科技有限公司 上海创道互联网络科技有限公司 互联网与数字科技关系 陕西云淼互联网科技公司 互联网金融金融科技 互联网领先科技成果宣传视频 小牛互联网科技有限公司地址 互联网科技工作委员会副主任毛军 科技互联网产品 凡科互联网科技 极限挑战互联网科技 互联网金融科技平台 互联网金融和金融科技 天扬科技互联网广告 苏州铭阳互联网科技有限公司 本届互联网大会上的黑科技 互联网科技职业技能培训学校
0