序言
本文原文是筆者寫的英文版纵散,目前維護(hù)在 GIthub(@hylerrix/deno-feedly) 上,以下是親自翻譯斜筐。
Deno v1.0 在 2020 年五月 13 日正式登場(chǎng)之時(shí)便引起了我的關(guān)注。更貼切 Web 本身的理念蛀缝、TypeScript 開箱即用顷链、各種必備小工具集成在 Deno 本身中、基于 Rust 和 V8屈梁、且開啟了一個(gè)全新的挑戰(zhàn)方向...... 所有我想要深入探索的 Web 潮流技術(shù)都包含在了其中嗤练。
于是我開啟了我的 Deno 之旅。寫作看似是我更擅長(zhǎng)的事情:從去年的 v1 發(fā)布開始在讶,我開始在中文社區(qū)寫了幾篇基礎(chǔ)入門級(jí)的 Deno 文章并翻譯了幾篇同樣是入門級(jí)的 Deno 文章(都有著一定的翻譯授權(quán))煞抬。@hylerrix/deno-tutorial 和 @hylerrix/awesome-deno-cn 沉淀了我早期對(duì) Deno 的一切理解。同時(shí)真朗,整個(gè) 2020 年里,我在 @ningowood/open-source-magazine 倉(cāng)庫(kù)中寫了近 12 期“開源愛好者月刊”僧诚,通過收集好文和咨詢等來(lái)沉淀我對(duì)開源的深入理解遮婶。
2021 伊始,我準(zhǔn)備挑戰(zhàn)更多的東西湖笨,思路也回到了 Deno旗扑。或許像收集好文和咨詢的開源愛好者月刊一樣來(lái)開啟新的一年中對(duì) Deno 的深入學(xué)習(xí)也是個(gè)不錯(cuò)的想法慈省。于是今天臀防,我在 Github 上開源了 @hylerrix/deno-feedly 倉(cāng)庫(kù)。Deno 雙周刊用來(lái)每?jī)芍苄缘氖占头窒?Deno 相關(guān)的咨詢边败、文章甚至更多袱衷。
與眾不同的在于维哈,從現(xiàn)在開始灌砖,我將用優(yōu)先用英文來(lái)編寫技術(shù)博客(并花費(fèi)少量時(shí)間來(lái)翻譯回中文)纹磺。對(duì)我來(lái)說谆扎,這是一個(gè)全新的體驗(yàn)碾盐,因?yàn)槲抑皬膩?lái)沒有用英文寫過文章甚至從來(lái)沒敢這么去想椭迎。
所以話說回來(lái)摊灭,歡迎來(lái)到 Deno 雙周刊系列祭示。如果有任何不適宜的地方,比如收集咨詢脱吱、寫作甚至分享宣傳的過程智政,歡迎告訴我,我也會(huì)盡量處理好箱蝠。雙周刊倉(cāng)庫(kù)中也會(huì)介紹更多的信息续捂,請(qǐng)戳:https://github.com/hylerrix/deno-feedly/。
那么開始吧抡锈。(對(duì)了疾忍,刊尾會(huì)有更多關(guān)于社群的信息可以查收。)
快訊
Deno 1.6 正式發(fā)布

Deno 最新的大版本 v1.6.0 在 2020 年 12 月 8 號(hào)正式發(fā)布床三,其中引入了幾個(gè)重要功能并修復(fù)了諸多已知 Bug:新的子命令 deno compile
和 deno lsp
一罩,一個(gè)實(shí)驗(yàn)性的,支持 Mac M1 芯片的 Deno撇簿。
正如 deno fmt
和 deno lint
聂渊,deno compile
和 deno lsp
也成為 Deno CLI 的諸多重要工具之一。
-
deno compile
做到了 Node 中nexe
四瘫、pkg
一樣類似的功能:從你的 JavaScript/TypeScript 源碼中直接編譯出一個(gè)獨(dú)立汉嗽、自包含的二進(jìn)制文件。目前這個(gè)工具還有一些已知問題找蜜,但也有一個(gè)良好的未來(lái)計(jì)劃來(lái)指導(dǎo)方向饼暑。 -
deno lsp
命令實(shí)現(xiàn)了語(yǔ)言服務(wù)協(xié)議(Language Server Protocol)。LSP 允許編輯器和 Deno 進(jìn)行數(shù)據(jù)溝通洗做,以讓編輯器獲得更多的高級(jí)功能弓叛,比如代碼自動(dòng)補(bǔ)全、代碼格式化甚至懸浮窗文檔诚纸。deno lsp
命令目前還沒有開發(fā)完成撰筷,但已經(jīng)實(shí)現(xiàn)了 LSP 中諸多重要的功能。如果你想現(xiàn)在就在 VSCode 中體驗(yàn)這個(gè)命令畦徘,需要在 VSCode 中安裝 Deno (Canary) 插件毕籽。
除此之外,v1.6.0 完成了向更嚴(yán)格類型檢查的遷移井辆、兼容了 TypeScript 最新的穩(wěn)定版 v4.1关筒、提供了一個(gè) Deno 開發(fā)版(canary update channel)升級(jí)選項(xiàng) deno upgrade --canary
、std/bytes
模塊進(jìn)行了大修補(bǔ)(這是讓 Deno 標(biāo)準(zhǔn)庫(kù)邁向穩(wěn)定階段的第一步)杯缺。
Deno 獲得 JS 2020 開源獎(jiǎng)之年度突破獎(jiǎng)

從 2018 年開始平委,JavaScript 開源大獎(jiǎng)(the JavaScript Open Source Awards)每年都會(huì)在四個(gè)類別下選出最有影響力的開源項(xiàng)目。Deno 和 Svelte 獲得了 2020 年的年度突破獎(jiǎng)夺谁。從 Deno 的官方介紹來(lái)看廉赔,Deno 是一個(gè)簡(jiǎn)單肉微、安全的現(xiàn)代 JavaScript 和 TypeScript 運(yùn)行時(shí)。Deno 基于 V8 和 Rust 開發(fā)蜡塌。經(jīng)過兩年的開發(fā)碉纳,Deno 最終在 2020 年 5 月發(fā)布了重要的 v1.0 版本,并且開始做好準(zhǔn)備來(lái)讓生產(chǎn)環(huán)境使用馏艾。Deno 支持 WebAssembly劳曹,使用可編譯到 WebAssembly 的語(yǔ)言(Rust、Go琅摩、C++等)開發(fā)的原生庫(kù)铁孵,可在 Deno 應(yīng)用程序中運(yùn)行。
2020 年度其他的三個(gè)類型獎(jiǎng)項(xiàng)分別頒給了 Mock Service Worker(最激動(dòng)人心技術(shù)應(yīng)用獎(jiǎng))房资、Pose Animater(年度最有趣項(xiàng)目獎(jiǎng))蜕劝、Perfume.js(對(duì)社區(qū)最具影響力貢獻(xiàn)獎(jiǎng))。此外轰异,還有個(gè)生產(chǎn)力促進(jìn)獎(jiǎng)?lì)C給了 Snowpack岖沛。
以及更多
- Deno LSP 現(xiàn)在在 Neovim 中正式可用。
- Bundler@v0.5.1 發(fā)布:Bundler 的工作方式類似于 deno bundle搭独,但將 Web 謹(jǐn)記于心婴削。
- terminal_markdown 開源:使你能夠?qū)?markdown 文本呈現(xiàn)為字符串,該字符串打印在終端上提供了格式化輸出牙肝,而不只是純文本唉俗。
- pinyin@0.0.5 發(fā)布:轉(zhuǎn)換漢字到拼音。用于語(yǔ)音符號(hào)配椭、排序和搜索虫溜。
- littlezip@0.4.0 發(fā)布:內(nèi)存友好的 zip 壓縮、解壓縮和 deno 框架的單個(gè)文件提取器颂郎。
-
deno_tag@v1.0.2 發(fā)布:一個(gè)簡(jiǎn)單的腳本替換 html 文件中出現(xiàn)的
<deno>
標(biāo)簽(雖然可以用 bash 來(lái)完成吼渡,但是為什么不使用 deno 來(lái)代替呢容为?)乓序。 - dragon@v1.0.6 發(fā)布:強(qiáng)大的 HTTP 路由器和 URL 匹配器,可以使用 Dragon 構(gòu)建 Deno Web 服務(wù)器坎背。
- drawille@v0.1.0 發(fā)布: 終端上的 HTML5 Canvas替劈,Deno 編寫。
- Emacs-ng issue#33:在 Emacs 中通過 Deno/Tokio 來(lái)允許 JavaScript得滤。
- lume 是 Deno 下的一個(gè)靜態(tài)網(wǎng)站生成器陨献,類似于 Jekyll 或 Eleventy。
- AuthCompanion 是基于 token(令牌)的身份驗(yàn)證服務(wù)器(Deno 版)懂更,可以幫助開放人員更快地搭建 Web 應(yīng)用程序眨业。
好文
Deno 1.0

動(dòng)態(tài)語(yǔ)言是很有用的工具急膀。用戶可以使用腳本快速簡(jiǎn)潔地將復(fù)雜的系統(tǒng)連接在一起并表達(dá)自己的想法,而不必顧慮諸如內(nèi)存管理或系統(tǒng)構(gòu)建之類的細(xì)節(jié)龄捡。近年來(lái)卓嫂,像 Rust 和 Go 這樣的編程語(yǔ)言讓程序員能更輕松地生成復(fù)雜的原生代碼;這些項(xiàng)目也是計(jì)算機(jī)基礎(chǔ)架構(gòu)發(fā)展歷程中極為重要的里程碑聘殖。但是晨雳,我們認(rèn)為開發(fā)工作中有一個(gè)可以應(yīng)對(duì)多種問題領(lǐng)域的強(qiáng)大腳本環(huán)境還是非常重要的。
2020 年 5 月 13 日奸腺,出于對(duì) JavaScript 是動(dòng)態(tài)語(yǔ)言工具優(yōu)先的選擇的信念餐禁,以及讓 JavaScript 工具生態(tài)效率變得更高、使其與 Web 本身的理念更接近突照,Deno V1.0 正式發(fā)布帮非。實(shí)際上,Deno 從 2018 年在 JS Conf EU 的會(huì)議中宣布以來(lái)绷旗,Deno 已經(jīng)被許多熱心的貢獻(xiàn)者們開發(fā)了近兩年喜鼓。
本文 Deno Land 官方團(tuán)隊(duì)介紹了這首個(gè)兩年內(nèi),Deno 的特性和進(jìn)展衔肢。
上手 Deno 前你需要了解的一切

對(duì)于 JavaScript 開發(fā)人員而言庄岖,Deno 很可能會(huì)是下一個(gè)重大方向。然而這并不意味著 Node.js 會(huì)被掃地出門角骤。對(duì)那些說 Node.js 已死或 Deno 會(huì)完全替代 Node 的話語(yǔ)要謹(jǐn)慎對(duì)待隅忿。
本文基于 Deno v1.0.5 之上,發(fā)布于 2020 年 09 月 02 日邦尊,介紹了有關(guān) Deno 運(yùn)行時(shí)的一切(Deno 的安裝背桐、基礎(chǔ)知識(shí)、功能蝉揍、標(biāo)準(zhǔn)庫(kù)等)链峭。
介紹一下 <deno>
標(biāo)簽

Deno 正逐漸受到更多的關(guān)注∮终矗基于 Rust 語(yǔ)言和 V8 引擎的 TypeScript 運(yùn)行時(shí)弊仪,常常會(huì)被誤認(rèn)為“新的 Node.js”。但經(jīng)過嘗試后杖刷,我覺得 Deno 不僅如此励饵。
有沒有可能在 HTML 文件中編寫 Deno 代碼,就像 PHP 一樣滑燃?在最近于 2021 年 1 月 6 日發(fā)布的這篇文章中役听,展示了在 HTML 中使用 <deno>
標(biāo)簽的想法,就像 <?php>
一樣。
資源
視頻:關(guān)于 Node.js典予,我所后悔的 10 件事
正如下方評(píng)論中所說甜滨,一個(gè)開發(fā)人員能公開談?wù)撍鶚?gòu)建軟件的種種缺陷是值得尊敬的事。Node.js 的創(chuàng)建者 Ryan Dahl 在這場(chǎng)會(huì)議上首次介紹了 Deno瘤袖。他對(duì) Node.js 的遺憾包括 Promise艳吠、安全性、構(gòu)建系統(tǒng)(GYP)孽椰、package.json昭娩、node_modules、require("module")
沒有擴(kuò)展名以及 index.js
的命名等方面黍匾。
視頻:100 秒內(nèi)讀懂 Deno
如何在很短的時(shí)間內(nèi)讀懂 Deno 的基本概念栏渺?可以試試這個(gè)。
視頻:7 分鐘了解 Deno 基礎(chǔ)概念
在七分鐘的視頻內(nèi)锐涯,手把手帶你安裝 Deno磕诊,編寫 Deno 代碼。
尾聲
到目前為止纹腌,使用英語(yǔ)寫作的感覺真的挺好霎终。希望你不會(huì)錯(cuò)過上方的精彩資訊,也希望我能在開啟 Deno Feedly 系列后有更多的編碼升薯。
不同的社群有不同的用途莱褒,如果你想交流更多有關(guān) Deno 甚至開源本身的知識(shí),我建立了幾個(gè)聊天室涎劈,一會(huì)見:
- Github: https://github.com/hylerrix/deno-tutorial/discussions. 沒錯(cuò)广凸,我接下來(lái)將會(huì)讓這個(gè)倉(cāng)庫(kù)更加的國(guó)際化,可以集中在這里暢聊任何有關(guān) Deno 的內(nèi)容蛛枚。
- Discord: https://discord.com/invite/e5uuDMjpFC. 初入 Discord谅海,有趣的是,其支持編寫各種資訊機(jī)器人蹦浦。前面的鏈接是一個(gè)僅限前一百個(gè)人加入的永久邀請(qǐng)鏈接(長(zhǎng)遠(yuǎn)來(lái)看扭吁,估計(jì)不會(huì)超過這個(gè)數(shù)量)。
- Wechat: 公眾號(hào) (@ningowood) )里尋找盲镶。