初识deno

2020-10-28 18:50:37 / 5204 / 默认分类

deno是什么?

一种新型的实时编译语言(作者同样也是node的创始人)
deno内置了 V8 引擎,用来解释 JavaScript,同时,也内置了 tsc 引擎,解释 TypeScript
deno使用 Rust 语言开发,最新开发版本为1.5

它为了解决什么?

解决node长久以来的扩展依赖和异步混乱等问题

它有什么特点

不同于node中的require,deno通过url导入包,无需npm
导入的包会被缓存到本地,除非强制用命令更新,不然不会改变
deno具有安全控制,默认情况下脚本不具有读写权限。
如果脚本未授权,就读写文件系统或网络,会报错,必须使用参数,显式打开权限才可以

总结一下

deno 是一门类似于node的语言,它主要是为了解决npm依赖包混乱和安全问题,以及node中的一些缺陷.
node中的npm和php中的composer,都是为了扩展而生,他们拥有惊人的相似性,都是从各个平台缓存包到本地,并进行一些更新下载的操作.
但是因为开发者良莠不齐,这里特别是npm的依赖包,简直是又臭又长,因为谁也不知道引入了什么依赖,依赖里面又引入了什么依赖.这就导致了node的node_modules比实际使用中更大更复杂.相对来说,composer的包相对是独立的,但是也会出现类似的情况.
对于开发者来说,依赖包的引入和集中管理,无疑大大的方便了开发者,我们可以去npm或者composer的官方网站进行包搜索和使用.
但是它同时又出现了一个新型的不容忽视的安全问题.因为这些依赖包并没有审核机制,所以任何人都能在上面发表自己的包.
如果被某些不良开发者利用,故意在自己发表的包中加上注入代码,这无疑是非常危险的行为,极易造成开发的代码被注入,被第三方控制.
而deno的出现,让我看见了曙光,对于脚本的独写权限,能让那写不法的依赖包无所遁形.
截止目前为止,deno1.5还是处在开发阶段,这里推荐大家学习,但是不推荐在正式环境使用,等什么时候版本稳定下来,就是大展身手的时候了.

相关学习资料

1.deno国内论坛:https://deno.js.cn/
2.阮一峰的网络日志:http://www.ruanyifeng.com/blog/2020/01/deno-intro.html
3.初识deno(翻译):https://segmentfault.com/a/1190000019939289
4.deno中文手册:https://manual.deno.js.cn/introduction.html

备注

以上观点,皆由本人理解,如果说的不对,还请多参考其它资料

gravatar头像