Hi, I tried my hand at experimental packaging for jupyterlab.
For the Python part, it lacks nbclassic, it's ITP bug #1000667, this will be done in no time. The JavaScript part is another story entirely. I made experiments compiling by hand a few of the packages in packages/. Here is how you can get as far as me: you need a trick and a patch, both at the end of this mail. [And of course the relevant node-* packages!] Apply the trick in the coreutils, services and statedb directories. That will allow you to compile, in that order: coreutils, statedb, nbformat, settingregistry, observables, services, translation, rendermime-interfaces, mathjax2, metapackage and pdf-extension. For the rest, ui-components is as far as I can tell the main blocker ; it wants typestyle, which in turn wants csstype and freestyle. Perhaps those are easy, but I don't know yet. Cheers, J.Puydt PS: The trick is to do this in the relevant packages/ directory: mkdir -p node_modules/@types ln -s /usr/share/nodejs/@types/node node_modules/@types/ The patch is: diff --git a/tsconfigbase.json b/tsconfigbase.json index b9aea77..de6fd2a 100644 --- a/tsconfigbase.json +++ b/tsconfigbase.json @@ -17,6 +17,36 @@ "sourceMap": true, "strictNullChecks": true, "target": "es2017", - "types": [] + "types": [], + "paths": { + "@jupyterlab/coreutils": ["./packages/coreutils"], + "@jupyterlab/nbformat": ["./packages/nbformat"], + "@jupyterlab/observables": ["./packages/observables"], + "@jupyterlab/rendermime-interfaces": ["./packages/rendermime- interfaces"], + "@jupyterlab/services": ["./packages/services"], + "@jupyterlab/settingregistry": ["./packages/settingregistry"], + "@jupyterlab/statedb": ["./packages/statedb"], + "@jupyterlab/translation": ["./packages/translation"], + "@lumino/algorithm": ["/usr/share/nodejs/@lumino/algorithm"], + "@lumino/commands": ["/usr/share/nodejs/@lumino/commands"], + "@lumino/coreutils": ["/usr/share/nodejs/@lumino/coreutils"], + "@lumino/datagrid": ["/usr/share/nodejs/@lumino/datagrid"], + "@lumino/disposable": ["/usr/share/nodejs/@lumino/disposable"], + "@lumino/domutils": ["/usr/share/nodejs/@lumino/domutils"], + "@lumino/dragdrop": ["/usr/share/nodejs/@lumino/dragdrop"], + "@lumino/messaging": ["/usr/share/nodejs/@lumino/messaging"], + "@lumino/polling": ["/usr/share/nodejs/@lumino/polling"], + "@lumino/properties": ["/usr/share/nodejs/@lumino/properties"], + "@lumino/signaling": ["/usr/share/nodejs/@lumino/signaling"], + "@lumino/virtualdom": ["/usr/share/nodejs/@lumino/virtualdom"], + "@lumino/widgets": ["/usr/share/nodejs/@lumino/widgets"], + "@types/node": ["/usr/share/nodejs/@types/node"], + "ajv": ["/usr/share/nodejs/ajv"], + "json5": ["/usr/share/nodejs/json5"], + "minimist": ["/usr/share/nodejs/minimist"], + "moment": ["/usr/share/nodejs/moment"], + "path": ["/usr/share/nodejs/@types/node"], + "url-parse": ["/usr/share/nodejs/url-parse"] + } } } Cheers, J.Puydt