Написать jupyterlab extension собирающий библиотеку в webpack

Цена договорная
10 июля 2019, 06:17 • 0 откликов • 21 просмотр
Проблема:
Есть библиотека:
https://github.com/root-project/jsroot

Ее надо заставить работать под Jupyterlab. Именно lab, а не просто Jupyter notebook.
Jupyterlab для работы со сторонними javascript библиотеками использует так называемые jupyterlab extensions - пакет из npm по сути со специальными тагами и интерфейсом. Система сборки на jupyterlab использует webpack. jsroot использует require.js и динамически загружает "свои" части

https://github.com/root-project/jsroot/blob/master/scripts/JSRootCore.js

webpack позволяет использовать синтаксис require.js, но попытки в лоб "втащить" jsroot в систему сборки jupyterlab закончилась неудачей.

https://github.com/root-project/jsroot/issues/166

Есть пара способов кривой попытки обхода этого - например подгрузить require.js с CDN и jsroot вставкой <script в body. Все эти попытки работают очень нестабильно (т.е. при комбинации открытых jupyter notebook-ов перестает работать) (все описано в топике выше)

Задача:
1. Минимум - создать тестовый проект со сборкой в webpack и убедиться, что jsroot нормально импортируется на страницу (на самом деле не очень интересно
2. Взять jupyterlab extension (cookiecutter https://github.com/jupyterlab/extension-cookiecutter-ts или https://github.com/jupyterlab/extension-cookiecutter-js, могу дать ссылку на работающий очень простой extension) и импорировать туда jsroot
3. Максимум. Написать jupyterlab extension, чтобы jsroot нормально загружалась и работала в jupyterlab notebook-ах, как этот, например
https://nbviewer.jupyter.org/github/dpiparo/swanExamples/blob/master/notebooks/Geometry_Visualisation_cpp/Geometry_Visualisation_cpp.ipynb

Сроки: ограничены!