通用代码库概览#
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-spliced。
lab-dev端点相当于在本地检出仓库并运行jupyter lab --dev-mode。
lab-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/中的测试。