Deno会替代Node.js吗?

1.Node.js的弊端

Node.js之父Ryan Dahl(瑞安达尔)承认当初创建Node的时候,犯下了一些不可逆的错误。
主要可以总结为以下十种错误:

  1. 没有作用的index.js设计
  2. Node没用JavaScript异步处理Promise对象
  3. 安全性较低
  4. 使用gyp来实现build系统
  5. 没有提供FFI而继续保留gyp
  6. 内建package.json,这样太过依赖npm和yarn
  7. 内建package.json造成的模块概念不准确
  8. 容易使用require(“任意模块”)
  9. require进入的module没有强制加上.js拓展名
  10. 直接npm下载进来的模块太多太多 ,导致node_module的安装包太过臃肿

2.Deno初步介绍

 实现语言:Rust语言编写而成。

Deno这门语言,可想而知,它是node颠倒后的变成的deno,寓意着Deno是将替代node的一门全新的技术。
然而,Deno在一两年里真的能替代Node吗?
我们分析了Node很多缺点,但是一门语言的发展的好与坏,取决的不仅仅是这门语言的原始属性,而且更关键的是一个语言的社区发展,社区力量的贡献是非常强大的。就如同一个公司的企业理念是十分强大,但是你总能在他的网站首页看到一个“加入我们”的链接,这是因为多个团体的多思维和多技术开发,对于一个集体而言,是十分之有力的。
而Node作为2009年就开始蔓延在编程社区之中,其成熟而强大的生态系统,是我们一直在用Node的原因之一。因此,短期内,Deno是不太可能替代Node的。
而deno是一个追逐者,我们对Deno只需对他慢慢地了解即可。

Deno特征

说了这么久,我们聊聊其特征
  1. 可以直接使用typescript的.ts文件
  2. 具有安全控制即权限管理
  3. 去掉中心化package
  4. 标准库
  5. modern js
  6. ES modules
  7. 顶级await
  8. 内置测试
  9. 浏览器兼容的API
  10. 执行wasm二进制文件

Deno特征细节

(1)聊一聊去掉中心化package
顾名思义,其没有package.json,而其package是通过URL来加载,并且把他加载在硬盘上。
引入例子: import {apllication} from 'http://deno.land/x/oak/mod.ts'

(2)聊一聊去掉中心化package
广泛的标准库模块,例如:fs,http,datetime
引入例子: import {server} from 'http://deno.land/std/http/server.ts'

(3)聊一聊运行程序的返回错误
利用deno运行ts文件,会打印ts文件中的错误,标明其错误的位置

Deno安装

Shell (Mac, Linux):

$ curl -fsSL https://deno.land/x/install/install.sh | sh
PowerShell (Windows):

$ iwr https://deno.land/x/install/install.ps1 -useb | iex
Homebrew (Mac):

$ brew install deno
Chocolatey (Windows):

$ choco install deno
Scoop (Windows):

$ scoop install deno
Build and install from source using Cargo

$ cargo install deno
See deno_install for more installation options.

开始一个简单的demo

$ deno run https://deno.land/std/examples/welcome.ts
Or a more complex one:

import { serve } from “https://deno.land/std@0.56.0/http/server.ts”;
const s = serve({ port: 8000 });
console.log(“http://localhost:8000/”);
for await (const req of s) {
req.respond({ body: “Hello World\n” });
}

VSCODE插件deno

由于deno采用URL引入模块,因此,例如,import {} from “https://deno.land/xxxx/xx/xx.ts”
其中引入的URL会出现红色的下划线,我们可以在vscode商店下载deno插件,重新启动VSCODE即可。

了解更多

DENO的官方网址

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值