菜单

启动过程

相关源文件

Bootstrap 进程负责初始化 Deno 运行时环境,设置全局对象,加载扩展,并准备 JavaScript 执行上下文。此过程发生在主运行时和工作线程运行时启动期间,并且为每种执行模式提供不同的配置。

有关触发 Bootstrap 的 CLI 命令处理的信息,请参阅 命令处理。有关 Bootstrap 期间初始化的扩展系统的详细信息,请参阅 运行时架构

Bootstrap 进程概述

Bootstrap 进程遵循结构化的初始化序列,该序列可准备 JavaScript 运行时环境。该过程根据执行模式(主运行时 vs. 工作线程)有所不同,但遵循相似的核心步骤。

来源: runtime/js/99_main.js790-989 runtime/js/99_main.js991-1111

Bootstrap Options 结构

Bootstrap 配置通过 BootstrapOptions 结构体进行管理,其中包含运行时参数和功能标志。

来源: runtime/worker_bootstrap.rs88-156 runtime/worker_bootstrap.rs167-201

主运行时 Bootstrap 流程

主运行时 Bootstrap 进程设置了主要的 Deno 执行环境,具有完整的 API 访问和全局对象配置。

来源: runtime/js/99_main.js790-989

工作线程运行时 Bootstrap 流程

工作线程运行时 Bootstrap 配置了一个沙箱环境,具有不同的全局属性和受限的 API 访问。

来源: runtime/js/99_main.js991-1111

扩展系统初始化

在 Bootstrap 过程中,Deno 会加载和初始化各种扩展,这些扩展提供 Web API 和 Deno 特有的功能。

来源: runtime/js/99_main.js6-96 runtime/js/90_deno_ns.js1-236 runtime/lib.rs3-31

全局对象配置

Bootstrap 进程根据执行环境配置不同的全局对象和属性。

属性主运行时工作线程运行时目的
globalThis.name""Worker nameWindow/Worker 标识
globalThis.closewindowClose()workerClose()环境清理
globalThis.closedwindowIsClosing不适用Window 状态跟踪
globalThis.postMessage不适用postMessage()Worker 通信
globalThis.importScripts不适用importScripts()经典 Worker 脚本加载
原型Window.prototypeDedicatedWorkerGlobalScope.prototype全局作用域类型

来源: runtime/js/99_main.js907-916 runtime/js/99_main.js1025-1039

错误和事件处理程序设置

Bootstrap 配置全局错误处理和事件系统,这些系统负责管理运行时异常和生命周期事件。

来源: runtime/js/99_main.js326-395 runtime/js/99_main.js414-462 runtime/js/99_main.js924-927

不稳定功能管理

Bootstrap 根据配置处理不稳定的功能标志并有选择性地公开实验性 API。

来源: runtime/js/99_main.js955-977 runtime/js/99_main.js484-499 runtime/js/90_deno_ns.js171-235

Bootstrap 执行模式

Bootstrap 过程根据执行模式调整行为,配置不同的功能和 API。

模式判别符特性Bootstrap 行为
0标准运行时基本功能集
工作器1Worker API工作线程特有全局变量
Run2完整的 Deno API完整的功能集
Repl3REPL 功能交互模式设置
Eval4评估模式最小设置
测试5Testing API测试工具集成
Bench6基准测试性能测量
ServeMain/ServeWorker7HTTP 服务服务器特定功能
Jupyter8Jupyter 集成Notebook 环境

来源: runtime/worker_bootstrap.rs12-56 runtime/js/99_main.js778-788