高级扩展配置#

警告

这是关于扩展配置的更高级部分。我们建议您先阅读简单扩展指南。

忽略来自环境的扩展#

默认情况下,JupyterLite 使用发现机制来包含本地环境中安装的扩展。

此发现行为可以使用 CLI 标志 --ignore-sys-prefixLiteBuildConfig/ignore_sys_prefix 禁用。

--ignore-sys-prefix CLI 标志将禁用所有附加组件使用 JupyterLab 环境中的组件。此行为可以按每个附加组件以更精细的方式进行配置,例如

{
  "LiteBuildConfig": {
    "ignore_sys_prefix": ["federated_extensions"]
  }
}

例如,如果您从一个已安装扩展的环境中构建站点,并且不希望出现“副作用”,这会很有用。

在运行时禁用扩展#

所有第三方扩展以及 JupyterLite 和 JupyterLab 提供的一些扩展都可以通过 disabledExtensions 选项针对站点中部署的一个或所有应用程序禁用。

例如,一个不需要从 Python 内核获取内容的站点可以使用以下 jupyter-lite.json 禁用 ServiceWorker 插件

{
  "jupyter-lite-schema-version": 0,
  "jupyter-config-data": {
    "disabledExtensions": ["@jupyterlite/application-extension:service-worker-manager"]
  }
}

指定查找扩展的额外路径#

jupyter-lite CLI 支持提供额外的路径来查找扩展。

您可以在构建站点时指定 --FederatedExtensionAddon.extra_labextensions_path CLI 选项

jupyter lite build --FederatedExtensionAddon.extra_labextensions_path=/path/to/extra/labextensions

或者在 jupyter_lite_config.json

{
  "FederatedExtensionAddon": {
    "extra_labextensions_path": ["/path/to/extra/labextensions"]
  }
}

特定应用程序的扩展#

与上述类似,通过更新 $YOUR_JUPYTERLITE/{app}/jupyter-lite.json,预构建的扩展将仅适用于该文件树中的页面。

添加自定义扩展#

通过将扩展放置在 {lite-dir}/extensions/{org/?}{package}/ 下,这些扩展也将在任何环境扩展之后复制到 output-dir 中,并且所有扩展都将添加到 {output-dir}/jupyter-lite.json#jupyter-config-data/federated_extensions 中。

提示

例如,在构建 Lab 扩展后,您可以将 packages.json#/jupyterlab/outputDir 的内容直接复制到 lite-dir 中以预览您的扩展。

最后,--federated-extensions CLI 标志和 LiteBuildConfig/federated_extensions 配置条目允许添加额外的联合扩展,这些扩展打包在

  • PyPI

    • .whl

  • conda-forge

    • .tar.bz2

    • .conda (见下文警告)

使用 libarchive#

如果检测到,将使用 libarchive-c 以获得更好的性能,尤其是在处理具有许多/大型资产的存档时,尤其是 pyodide

如果未检测到 libarchive-c,将使用 Python 内置的 zipfiletarfile 模块。

警告

.conda 包中提取联合扩展需要 libarchive-c