Deno Park,《Deno入门指南》
TLDR:安装Deno并开始学习Deno:从零到精通的完整指南,我们将在一个全新的课程中重现 SpaceX 的发射数据。
大家好,我叫 Brittney Postma,是一位自学成才的开发者,也是三个孩子的超级妈妈。您可以从这篇文章开始,然后跟随我们一起在全新的《Deno:从零到精通完全指南》中重现 SpaceX 的发射数据,开启一段太空之旅。如果您想了解更多关于我的信息,可以查看我的作品集b.Designed或我的开发笔记网站Console Logs。
目录
Deno是什么?
Deno 由 Ryan Dahl 创建,他也是NodeJS 的创建者。为什么他会放弃 NodeJS,转而创建一种全新的语言呢?在 2018 年的演讲《我对 Node.js 的十件后悔的事》中,Ryan 提到了 Node 最初的一些设计决策,正是这些决策促使他想要找到一个更好的解决方案。根据Deno官网的介绍,Deno 是一个安全的JavaScript和TypeScript运行时环境。让我们来详细了解一下。Deno 与 NodeJS 一样,都基于Chrome V8 JavaScript 引擎。该引擎会将我们编写的代码转换成计算机可以实际运行的代码。它最初是用 Go 语言编写的,但最终由于担心运行时重复和垃圾回收的问题,被Rust和Tokio取代。Deno 默认也是安全的。除非使用沙盒环境显式启用,否则它无法访问外部网络或文件。你甚至可以开箱即用TypeScript,无需额外的库。它会将你的代码打包成一个可执行文件,并内置了一些实用工具。
Deno 与 Node.js 对比
Node.js 有自己的包管理器npm,而这正是 Deno 最明显的区别。Deno 使用的是类似浏览器的模块 URL 引用方式。Deno 还使用 ES 模块,并且不支持 `import` 语句require(),模块通过 `import` 语句导入import * as log from "https://deno.lan/std/log/mod.ts"。这使得 Deno 包无需额外的注册表即可分发。包维护者可以自由地将代码托管在任何地方,我们可以使用这些代码,并且包会自动更新,除非指定了版本号。没有 ` package.jsonimport` 文件,也不再需要 `import` 语句node_modules。应用程序启动时,Deno 会下载所有导入的模块并缓存它们,以便离线使用。缓存完成后,除非使用 `--require` 标志要求,否则 Deno 不需要再次下载它们--reload。Deno 的创建者建议将模块缓存添加到版本控制系统(例如 Git)中,以防模块所在的网站宕机。如果在应用程序中多次使用 URL 导入模块,可能会很繁琐。Deno 的创建者也考虑到了这一点,并提供了一种替代方案。我们可以像这样从文件中重新导出导入的模块export { test, runTests } from "https://deno.land/std@v0.32.0/testing/mod.ts"。然后,就可以像这样在需要它的文件中按名称导入它import { test, runTests } from './pathToFile.ts"。
Deno会取代Node.js吗?
绝对不可能,而且在相当长的一段时间内,Deno 甚至都不会在市场上占有一席之地。它确实是一项令人兴奋的新技术,很多人都想尝试,但它还太新了。Node 已经非常成熟,并且拥有强大的支持。Deno 会逐渐发展壮大,也许一些初创公司会在此过程中采用它,但 Node 仍然会长期存在。
为什么选择Deno?
Deno 本质上是 Node 的改进版本,那么我们为什么要选择它呢?
- 允许使用现代 JavaScript(let、const、import)
- TypeScript 开箱即用
- 无需第三方系统的基于 URL 的模块。
- 无需维护包管理器、package.json 或 node_modules。
- 用于测试代码的集成测试运行器。
- 能够在顶层使用 await。
- 提供 API(fetch、window 对象),以尽可能与浏览器兼容。
还等什么?赶紧安装Deno吧!
如何安装 Deno
支持的 shell 包括zsh、bash、fish、powershell和elvish。根据您运行的操作系统和使用的安装程序,您需要运行以下命令之一:
Shell(Mac、Linux):
curl -fsSL https://deno.land/x/install/install.sh | sh
PowerShell(Windows):
iwr https://deno.land/x/install/install.ps1 -useb | iex
自制软件(Mac)
brew install deno
Chocolatey(Windows):
choco install deno
当您收到“Deno 已成功安装到 ”的消息后/Users/username/.deno/bin/deno,就可以开始使用了。路径可能因您的机器而异,但您可以通过运行 `deno install --version` 来测试安装deno --version是否成功,看看控制台是否输出了版本信息。您可以运行 `deno install --version`deno help查看命令列表,并运行 ` deno upgradedeno update` 更新 Deno 版本。之后,您应该能够运行 `deno install --version`deno打开运行时环境。所以,一切就绪了吗?还不完全是。如果您可以deno立即使用该命令,那就太好了,您可以继续下一步了。否则,我们需要告诉系统 Deno 的正确路径。如果在安装后看到一条消息,提示您手动将目录添加到您的`/etc/deno path/`(或类似路径),那么您需要复制其下方以 `export` 开头的两行命令,并粘贴到终端中运行它们。它们可能类似于这样:
export DENO_INSTALL="/Users/username/.deno"
export PATH="$DENO_INSTALL/bin:$PATH"
如果你在使用不同的 shell 时遇到其他问题,通常快速进行 Google 搜索就能在 Stack Overflow 上找到你想要的答案 😁。
选择你的集成开发环境
遗憾的是,由于 Deno 还很新,很多编辑器在尝试导入模块时会报错,因为它们本身并不支持。不过,一些社区开发的扩展程序可以解决部分常用编辑器的这个问题。例如,Vim和NeoVim的CoC、JetBrains IDE的Deno 插件、Emacs的tide和typescript-deno-plugin,以及VS Code 的Deno插件。如果您的编辑器不在列表中,您可以尝试开发扩展程序,或者加入Discord 群组了解入门指南。
感谢阅读,请务必去ZTM Academy 查看新课程。
