通用代码库概览#

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上测试该仓库。 此规范主要面向开发者。 对于更面向用户的binder,请参见 JupyterLab演示 binder实例除了/lab外,还添加了两个端点:/lab-dev/lab-splicedlab-dev端点相当于在本地检出仓库并运行jupyter lab --dev-modelab-spliced端点相当于以拼接模式构建JupyterLab并运行jupyter lab。 有关拼接模式的更多信息,请参见源扩展的开发工作流程

构建工具:buildutils/#

一个包含多个实用脚本的npm包,用于管理JupyterLab的构建过程。

你可以通过运行jlpm build:utils来构建这个包。

设计: design/#

一个包含一系列设计文档的目录,这些文档阐述了在构建JupyterLab过程中所做的各种选择。

开发模式: dev_mode/#

一个包含构建的JavaScript资源的应用程序目录,这些资源在开发TypeScript源代码时使用。如果您在dev-mode中运行JupyterLab,您将从此目录提供应用程序服务。

文档:docs/#

此目录包含此文档的Sphinx项目。 您可以使用pip install .[docs]安装构建文档所需的依赖项, 并通过运行make html来构建文档。 构建后的文档入口将在docs/build/index.html中。

示例:examples/#

examples/ 目录包含组件的独立示例,例如页面上的简单笔记本、控制台、终端和文件浏览器。app 示例展示了 JupyterLab 中使用的几个组件的简化组合。

Jupyter 服务器配置: jupyter-config/#

此目录包含与Python包一起分发的元数据,使其在安装时能够自动启用Jupyter服务器扩展。

实用脚本:scripts/#

此目录包含一系列实用脚本,主要用于JupyterLab的持续集成测试。

测试: tests/#

测试packages/目录中的TypeScript包。 这些测试目录本身是小的npm包,它们引入TypeScript源代码并执行其API。

测试工具:testutils/#

一个小的npm包,用于帮助运行tests/中的测试。