Hello Deno
2022-05-10
node
es6
deno
javascript
typescript
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还不可行