如何包含我的自定义 jupyter 笔记本扩展使用的额外 javascript 库?

Ste*_*fan 5 javascript jupyter-notebook jupyter-contrib-nbextensions

我想编写一个 Jupyter Notebook 扩展,如下所述:https ://towardsdatascience.com/how-to-write-a-jupyter-notebook-extension-a63f9578a38c

Jupyter Notebook 似乎带有一组默认的 JavaScript 库(例如 jquery、下划线等)。我在下面找到了那些库

python-3.7.1.amd64\Lib\site-packages\notebook\static\components
Run Code Online (Sandbox Code Playgroud)

我的笔记本扩展需要更多的库,例如 gold-layout.js 和 d3.js。

=> 是否可以定义额外的必需 JavaScript 库,在安装我的扩展时将其安装到上述组件文件夹中?

作为一种解决方法,我可以将库复制到我的自定义扩展文件夹的子文件夹“bower_components”,例如

python-3.7.1.amd64\Lib\site-packages\jupyter_contrib_nbextensions\nbextensions\my_extension_folder\bower_components
Run Code Online (Sandbox Code Playgroud)

然后我会尝试调整 require 配置以能够加载这些库。但是,这似乎很棘手,并且可能会由于某些库的双重安装而导致其他扩展出现问题?

=> 满足我的依赖项的推荐方法是什么?

编辑

如果我使用以相对根“nbextensions”开头的详细路径,则无需更改 require 配置:

require([
    'nbextensions/my_extension_folder/bower_components/golden-layout/dist/goldenlayout.min',
    'nbextensions/my_extension_folder/bower_components/d3/d3.min'   
], function(
    GoldenLayout,
    d3  
) {             
  alert('foo');    
});
Run Code Online (Sandbox Code Playgroud)

我仍然想知道这是否是正确的方法。