2. 其他 Javascript 引擎
能运行Javascript代码的引擎不光有Node.js。
1. Deno
Deno 是一个简单、先进且安全的 JavaScript 和 TypeScript 运行时环境,其基于 V8 引擎并采用 Rust 编程语言构建。
- 默认安全设置。除非 显式开启,否则不能访问文件、网络,也不能访问运行环境。
- 天生支持 TypeScript。
- 只有一个唯一的可执行文件。
- 自带实用工具,例如依赖检查器 (deno info) 和代码格式化工具 (deno fmt)。
- 有一套经过审核(审计)的标准模块, 确保与 Deno 兼容: deno.land/std
- 有大量的 企业对使用 Deno 感兴趣
可以使用下面的命令来安装Deno
# MacOS,Linux
curl -fsSL https://deno.land/install.sh | sh
# Homebrew
brew install deno
# Windows
irm https://deno.land/install.ps1 | iex
2. Bun
Bun is an all-in-one toolkit for JavaScript and TypeScript apps. It ships as a single executable called bun. At its core is the Bun runtime, a fast JavaScript runtime designed as a drop-in replacement for Node.js. It's written in Zig and powered by JavaScriptCore under the hood, dramatically reducing startup times and memory usage.
Bun 是一款用于Javascript和Typescript的多功能工具包,它是一个单一可执行文件。 Bun的核心是Bun运行时,一个快速的Javascript运行时,它被设计为Node.js的一个替代品。 它是用 Zig 编写的,底层由 JavaScriptCore 提供支持,大大减少了启动时间和内存使用。
上面是Bun官网对自身的描述,它和 Deno 一样,比 Node.js 多了直接运行 Typescript 的能力。它的底层是 JavaScriptCore,这是一个由 WebKit 提供的 JavaScript 引擎。我分别使用 Bun 和 Node 在同一台机器上编译了本站的相同的源码,Bun的编译速度比Node慢了5秒多,启动项目的速度比 Node 慢了近 2 秒。
time bun run build # bun run build 115.14s user 8.77s system 130% cpu 1:34.66 total
time yarn run build # yarn run build 109.68s user 8.67s system 131% cpu 1:29.72 total
bun start # ✔ Client Compiled successfully in 7.52s
yarn start # ✔ Client Compiled successfully in 5.58s
上面测试使用的是 Bun 1.1.12 和 Node v18.15.0。
安装方式:
# MacOS, Linux
curl -fsSL https://bun.sh/install | bash
# npm
npm install -g bun
# Homebrew
brew install oven-sh/bun/bun
# Docker
docker pull oven/bun
docker run --rm --init --ulimit memlock=-1:-1 oven/bun
# Proto
proto install bun
# windows
powershell -c "irm bun.sh/install.ps1|iex"
# scoop
scoop install bun