轻量高效的拓扑图组件
zh

Hello Deno

2022-05-10

deno介绍

据说是原nodejs的开发者创建的项目:http://deno.com,支持 es6,ts,解决nodejs的兼容和依赖混乱问题

nodejs的问题

import, require 兼容问题

很多老库都是require的写法,无法在es6中使用,import, require没法兼容使用,一个node项目需要打包多种格式,如果是考虑浏览器和服务器版本,则更加复杂,Deno没有这个历史问题

依赖混乱问题

node-modules是个无底洞,文件巨大而混乱,太多无用的东西被引入,比如我使用A项目的某个函数,需要将整个A项目和A项目依赖的项目全部引入,Deno中不支持按名称引用的方式,只支持url,相对路径或者绝对路径,从Deno官网Deploy JavaScript Globally的宣传看,其对部署管理挺重视

Deno使用和特点

Deno的安装和使用很简单,语法支持js,ts,WebAssembly,具有以下特点

Deno特点

1,安装简单,可以直接一个可执行文件,类似go语言 2,解决依赖,依赖全部为url,相对或者绝对路径,不支持名称,不支持node-modules 3,支持es6, ts import语法,不支持require

注意点

1,权限

默认deno程序不能读写和网络访问,需要在命令中指定,比如下面

run --allow-read --allow-write

2,严格模式

使用ts时,默认按最严格的模式编译,任何变量需要指定类型,需要命令行中加入--no-check避免

3,webstrom中提示问题

webstrom中没有指定类型时,会提示异常,tsconfig.json或者deno.json中设置"noImplicitAny": false 不起作用,虽然不会影响运行,但是碍眼

4,类库有限

大部分第三方类库无法直接运行,无法做到完全兼容,完全替代nodejs还不可行

Prev