当我想使用插件krpano时会出现问题(https://krpano.com/)在我的项目中。
根据官方教程,它可以通过script
标签导入。像
<script src="krpano.js"></script>
然后函数embedpano
将被添加到window
对象中。称之为
embedpano({swf:"krpano.swf", xml:"pano.xml", target:"pano"});
但我想把它包装起来,所以我尝试直接在包装文件中导入它。像
import "@/libs/krpano.js";
当我调用函数时,它抛出一个错误'embedpano' is not defined.
我在krpano.js
的末尾加了一行window.embedpano = embedpano;
,它就起作用了。但我不想每次使用没有导出的模块时都修改插件文件。
有没有更优雅的方法可以在不导出的情况下导入此类模块?就像通过script
标签导入一样?
我已经解决了这个问题。我使用require
而不是import
。像
let lib = require("@/libs/krpano.js");
然后对象lib
将包括函数embedpano
和removepano
,它们在模块内部而不导出。