如何在开发过程中在中央服务器上托管 single-spa root-config 和模块

how to to host single-spa root-config and modules on a central server during development

我已经尝试使用 single-spa 一段时间了,并且了解开发人员体验的基础知识。创建一个包裹,在一个唯一的端口上开始纱线,将引用添加到导入地图声明中,等等。这样做的挑战在于,随着我的根配置积累越来越多的管理端口的模块,导入映射开始变得乏味。我想要的是将这些模块发布到中央存储库并从那里加载它们(例如,http://someserver.com/repository/moduleA/myorg-modulea.js,等等)。

我最近被介绍到 localstack 并开始考虑本地 S3 存储桶是否可以为此服务。我有一个配置,其中构建(纱线构建)自动发布到 localstack 上的 s3 存储桶 运行。但是当我尝试从存储桶中加载根配置 index.html 时,出现以下 JS 错误:

Unable to resolve bare specifier '@myorg/root-config'

我可以通过 curl 访问每个包裹的 JS 文件和根配置,所以我想这对于以相同方式使用的任何 http 服务器来说都是一个问题。我可以翻转根配置以使用标准的 webpack-dev-server 代替(在端口 9000 上)并且它工作正常。所以我猜生产构建解决这些模块的方式与本地构建之间存在差异。

有没有人试过这样的东西并且成功了?

我有一个类似的问题,我必须通过将每个子 .js 文件添加到 root-config 目录中的子文件夹并在 root-config 目录中启动 Web 服务器来使用 http-server等级.

"imports": {
    "@myorg/root-config": "http://someserver.com/root-config.js",
    "@myorg/moduleA": "http://someserver.com/modules/moduleA/myorg-modulea.js",
    "@myorg/moduleB": "http://someserver.com/modules/moduleB/myorg-moduleb.js",
    "@myorg/moduleC": "http://someserver.com/modules/moduleC/myorg-modulec.js",
}

注意:默认情况下,Single-SPA 在当前导入映射之前有一个“isLocal”检查。如果使用生产版本,您需要删除它,否则它不会加载正确的映射。

<% if (isLocal) { %> 

在我的例子中,我使用的是 localhost 而不是 someserver 所以我可以导航到 'repository' 文件夹和 运行 npx http-server 以将所有内容正确地获取到 运行。

我在这上面挂了一会儿,希望这能引导你朝着正确的方向前进。

郑重声明,在尝试了上述几种托管存储库的方法后,我发现未解决的裸说明符问题消失了。所以我不得不把它归结为在导入映射中没有正确的 URL。测量两次,切割一次。