跳到主要内容

2. 其他 Javascript 引擎

- · -

能运行Javascript代码的引擎不光有Node.js。

1. Deno

Deno 是一个简单、先进且安全的 JavaScript 和 TypeScript 运行时环境,其基于 V8 引擎并采用 Rust 编程语言构建。

  1. 默认安全设置。除非 显式开启,否则不能访问文件、网络,也不能访问运行环境。
  2. 天生支持 TypeScript。
  3. 只有一个唯一的可执行文件。
  4. 自带实用工具,例如依赖检查器 (deno info) 和代码格式化工具 (deno fmt)。
  5. 有一套经过审核(审计)的标准模块, 确保与 Deno 兼容: deno.land/std
  6. 有大量的 企业对使用 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。

Versions

安装方式:

# 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

参考文档

  1. Deno 中文网
  2. Deno 官网
  3. 阮一峰的网络日志
  4. Bun 官网
该内容为何方原创,转载请注明本页地址
https://iamhefang.cn/tutorials/nodejs/appendix/other-js-engines