高级扩展配置#

警告

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

忽略来自环境的扩展#

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

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

CLI 标志 --ignore-sys-prefix 将禁用对所有插件使用来自 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/server-extension:service-worker"]
  }
}

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

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

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

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 中。

提示

例如,在构建实验室扩展后,您可以将 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