首页 > 解决方案 > 从非 http 源在浏览器中加载 ES6/ESM 模块?

问题描述

我想从非 HTTP 源在 Web 浏览器中加载 ESM 模块,在我的情况下,是存储在 IPFS 上的许多模块的 ZIP 文件包。

基本上,我想在浏览器 Javascript 中实现相当于 Python 导入钩子或 Java 类加载器的功能。有没有办法实现这一目标?

这是我探索过的选项:

  1. 使用 IPFS<->HTTP 网关:如果我试图从存储在 IPFS 中的目录加载模块,这可能会起作用,但我想从 zip 文件(ala Java jar)加载。此外,它需要一个网关,这会妨碍分布式应用程序的乐趣;-)
  2. 从 IPFS 加载,存储在数据 URI 中,从数据 URI 加载 ESM 模块:这适用于单个文件ESM 模块,但如果 ESM 模块使用相对路径加载另一个模块,则它不起作用。也许有一些方法可以将文件夹存储在带有子路径的数据 URI 中?我还没有找到它....

标签: javascriptes6-modules

解决方案


推荐阅读