通用代码库导向#
The jupyterlab
存储库是一个单体存储库:它包含许多独立版本化和发布的软件包的代码。
特别是,它包含许多 TypeScript 软件包和一个 Python 软件包。Python 软件包包含服务器端代码,并且还分发捆绑和编译的 TypeScript 代码。
请参阅 贡献指南 以获取详细的开发人员安装说明。
目录#
该存储库包含许多顶级目录,其内容在此处描述。
Python 包:jupyterlab/
#
它与 pyproject.toml
一起,构成了项目的 Python 代码。这包括笔记本服务器扩展、JupyterLab 的命令行界面、入口点和 Python 测试。
它还包含与 Python 包一起分发的最终构建的 JavaScript 资产。
NPM 包:packages/
#
它包含许多独立版本化并发布到 npmjs.org
的 TypeScript 子包。这些被编译成 JavaScript 并与 Python 包捆绑在一起。
JupyterLab 的大部分代码库都驻留在这些包中。JupyterLab 中各种组件的常见模式是拥有一个实现该组件的包,以及一个后缀为 -extension
的第二个包,用于将该组件与应用程序的其余部分集成。检查此目录的内容显示了许多这样的包。
您可以通过运行 jlpm build:packages
来构建这些包。
Binder 设置:binder/
#
它包含一个 repo2docker
环境规范,允许在 mybinder.org 上测试存储库。此规范面向开发人员。有关面向用户的更多信息,请参阅 JupyterLab 演示 Binder 实例除了 /lab
之外还添加了两个端点:/lab-dev
和 /lab-spliced
。The lab-dev
端点等效于在本地检出存储库并运行 jupyter lab --dev-mode
。The lab-spliced
端点等效于以拼接模式构建 JupyterLab 并运行 jupyter lab
。有关拼接模式的更多信息,请参阅 源扩展的开发工作流程。
构建实用程序:buildutils/
#
这是一个包含用于管理 JupyterLab 构建过程的多个实用脚本的 npm
包。
您可以通过运行 jlpm build:utils
来构建此包。
设计:design/
#
一个目录,包含一系列设计文档,这些文档阐明了在构建 JupyterLab 过程中做出的各种选择的动机。
开发模式:dev_mode/
#
一个应用程序目录,包含在开发 TypeScript 源代码时使用的已构建 JavaScript 资产。如果您在 dev-mode
模式下运行 JupyterLab,则您正在从该目录中提供应用程序。
文档:docs/
#
此目录包含此文档的 Sphinx 项目。您可以使用 pip install .[docs]
安装构建文档的依赖项,并且您可以通过运行 make html
来构建文档。构建后的文档的入口点将在 docs/build/index.html
中。
示例:examples/
#
examples/
目录包含组件的独立示例,例如页面上的简单笔记本、控制台、终端和文件浏览器。 app
示例说明了 JupyterLab 中使用的多个组件的简化组合。
Jupyter Server 配置:jupyter-config/
#
此目录包含与 Python 包一起分发的元数据,这些元数据允许它在安装时自动启用 Jupyter 服务器扩展。
实用脚本:scripts/
#
此目录包含一系列实用脚本,这些脚本主要用于 JupyterLab 的持续集成测试。
测试:tests/
#
packages/
目录中 TypeScript 包的测试。这些测试目录本身是小型 npm
包,它们会引入 TypeScript 源代码并测试其 API。
测试实用程序:testutils/
#
一个小型 npm
包,它有助于运行 tests/
中的测试。