我应该算个node的忠实拥护者与积极实践者,能用node的基本都上node,Express/koa基本换着用一下,node的源码也通过很多的博客与前辈的指导下不断地在阅读。在公司工作时,接触了企业级的node应用,在koa/Express/egg等上都有一些企业级项目经验。最近,社区有在问到我对deno的看法,遂把这篇自己的博客拿了过来,仅供参考。
最近开始使用Deno,github上找到了一个类似koa的中间件框架oak【A middleware framework for Deno’s net server 🐿️ 🦕】。不得不说这些人真会玩🙄
2021算是deno元年吧,不知道“元年”两字是否适当,在deno发布后,狂热追求者们铺天盖地,自己在阅读相关文章后,deno与node的区别如下:
| OP | Node | Deno |
|---|---|---|
| API 引用方式 | 模块导入 | 全局对象 |
| 模块系统 | CommonJS & 新版 node 实验性 ES Module | ES Module 浏览器实现 |
| 安全 | 无安全限制 | 默认安全 |
| Typescript | 第三方,如通过 ts-node 支持 | 原生支持 |
| 包管理 | npm + node_modules | 原生支持 |
| 异步操作 | 回调 | Promise |
| 包分发 | 中心化 npmjs.com | 去中心化 import url |
| 入口 | package.json 配置 | import url 直接引入 |
| 打包、测试、格式化 | 第三方如 eslint、gulp、webpack、babel 等 | 原生支持 |
为什么会突然写这篇总结尼?今天逛社区,看大了这样一篇文章,为什么我认为 Deno 是一个迈向错误方向的 JavaScript 运行时?,觉得还是写的中规中矩又不失道理。
原作者 Mehul 在原文以及两个视频中到底想要说 Deno 为什么没那么好?对deno的优点进行了对应的挑战。其观点大致梳理如下:
都说天下苦npm久矣,npm=“你怕吗”? 😄,ESM比CJS优秀许多,但ESM真就完全解决CJS的问题了么?
新技术的成熟需要数以年计得社区维护,需要数以万计的开发者加入,node已经发展数年,社区成熟的包,成熟的方案能解决很大部分的开发问题,deno的发展还得看社区。
DenoJS, NodeJS, RunTime — Aug 8, 2022
Made with ❤ and at Earth.