硬核方式#
这是一个**高级**部分,在求助于硬核方式之前,您应该先考虑其他指南。
内容,硬核方式#
假设
您有一个正在运行的 JupyterLab 4
您想将当前 JupyterLab 根文件夹中的所有文件添加到您的 JupyterLite 中。
打开浏览器
查看 内容 API,例如
https://127.0.0.1:8888/api/contents
,它应该看起来像下面这样
{
"name": "",
"path": "",
"last_modified": "2021-05-15T20:16:17.753908Z",
"created": "2021-05-15T20:16:17.753908Z",
"format": "json",
"mimetype": null,
"size": null,
"writable": true,
"type": "directory",
"content": [
{
"name": "README.md",
"path": "README.md",
"last_modified": "2021-05-15T20:12:22.261076Z",
"created": "2021-05-15T20:12:22.261076Z",
"content": null,
"format": null,
"mimetype": "text/markdown",
"size": 3735,
"writable": true,
"type": "file"
}
]
}
将此 JSON 粘贴到
$YOUR_JUPYTERLITE/api/contents/all.json
中将您的文件复制到
$YOUR_JUPYTERLITE/files
中对每个子文件夹重复此操作
:(
现在,当应用程序重新加载时,这些文件将出现在文件浏览器中,如果浏览器存储中不存在同名文件。如果用户已经创建了这样的文件,并且被删除,原始服务器支持的文件将变得可见。
扩展,硬核方式#
警告
这是一个非常手动流程,建议使用其他指南中的方法进行生产使用。
获取扩展资产#
假设您已安装并运行 JupyterLab 4,请查看您的 {sys.prefix}/share/jupyter/labextensions
。每个文件夹包含:
如果文件夹名称以
@
开头,则包含一组软件包否则,包含单个预构建的扩展
cd $YOUR_JUPYTERLITE
mkdir -p extensions
cd extensions
cp -r $PREFIX/share/jupyter/labextensions/@jupyter-widgets/jupyterlab-manager .
警告
某些扩展需要其他扩展可用。这可以通过查看扩展的 package.json
文件,特别是 #/jupyterlab/sharedPackages
部分来确定。如果是这种情况,您还需要将所需的扩展复制到 JupyterLite 目录。
处理主题资产#
主题管理器期望能够从 {:app}/build/themes/({:org}/){:package}
加载主题 CSS/字体资产,其中 app
通常为 lab
。
继续上面的示例
cd $YOUR_JUPYTERLITE/extensions
mkdir -p ../build/themes
cp -r @*/*/themes/* ../build/themes/
cp -r @*/themes/* ../build/themes/
填写 federated_extensions
#
同样,假设您已安装并运行 JupyterLab,请在您的 Lab 中点击“检查元素”,并检查 <head>
中的 <script id="jupyter-config-data">
。您需要的条目将包含在其中。
更新您的 /app/jupyter-lite.json
文件,如下所示
{
"federated_extensions": [
{
"extension": "./extension",
"load": "static/remoteEntry.ca1efc27dc965162ca86.js",
"name": "@jupyter-widgets/jupyterlab-manager"
}
]
}
提示
某些扩展还包含 style
键,如果省略可能会导致外观异常。