如何在不导出的情况下导入模块



当我想使用插件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将包括函数embedpanoremovepano,它们在模块内部而不导出。

最新更新