我目前使用Jupyter Notebook Server 5.7.0版。我想编写一个Jupyter笔记本扩展程序,通过在文档中添加脚本标签来加载一些ES6模块,例如:
<script type="module" scr='./es6module.js'>
已添加脚本标签,但是我没有设法正确设置scr路径/为我的文件提供了正确的mime类型。
上面的脚本标签在笔记本目录中查找es6module.js
文件。
我还尝试引用扩展文件夹中的文件:
<script type="module" scr='/nbextensions/my_extension_folder/es6module.js'>
两种情况下我都得到
Failed to load module script: The server responded with a non-JavaScript MIME type of "text/plain". Strict MIME type checking is enforced for module scripts per HTML spec.
=>是否存在一些http路径,在该路径中文件以必需的mime类型提供以允许ES6模块使用?也许像
<script type="module" scr='/http/nbextensions/my_extension_folder/es6module.js'>
=>还是应该尝试使用Python启动自己的http服务器?
Jupyter.notebook.kernel.execute('http.server');
扩展代码示例:
define([
'require',
'jquery',
'base/js/namespace'
], function(
requirejs,
$,
Jupyter
) {
var load_ipython_extension = function() {
if (Jupyter.notebook !== undefined && Jupyter.notebook._fully_loaded) {
init();
} else {
console.log("[workspace_module] Waiting for notebook availability")
events.on("notebook_loaded.Notebook", function() {
init();
})
}
};
function init(){
console.log("[workspace_module] trying to load workspace.js")
var moduleScript = document.createElement('script');
moduleScript.setAttribute('type','module');
moduleScript.setAttribute('src','/nbextensions/my_extension_folder/es6module.js');
document.head.appendChild(moduleScript);
}
return {
load_ipython_extension: load_ipython_extension
};
});
修改
可能与
有关答案 0 :(得分:0)
我在Jupyter Notebook版本5.7.8中进行了尝试,现在可以加载ES6模块。