0

首先是一个伟大的基于 SSR 的 MFE 框架。我正在尝试 Ara / Svelte (Micro App1) / Vue (Micro App 2) / Nuxt JS (Appshell),如https://ara-framework.github.io/website/blog/2019/08/27/中所述nuxt-js以及按照文档https://ara-framework.github.io/website/docs/nova-cluster中的描述设置集群和代理

在 Nuxt 应用程序的应用程序外壳中,我需要包含这样的客户端脚本

  head: {
    script: [
      { src: 'http://localhost:3000/public/client.js' },
      { src: 'http://localhost:3001/public/client.js' }
    ]
  }

有没有更好的方法来发现和加载这个脚本,类似于服务器端部分由代理和集群服务器处理?当前方法的问题是我需要事先知道 nova 服务器客户端脚本的部署位置。

4

1 回答 1

0

正如您在评论中描述的那样,使用该NovaMount事件是迄今为止最好的方法。不幸的是,在没有明确定义捆绑 URL 的情况下,没有开箱即用的方法。

但是,我们计划向Nova Proxy添加一项新功能,以使其更容易。

getComponent帮助程序中,我们可以使用returnMeta第二个参数中的属性在 Hypernova 响应中返回客户端脚本 URL。

hypernova({
  getComponent (name, { returnMeta }) {
    returnMeta.src = 'http://localhost:3000/public/client.js'
  }
})

我们在 Hypernova 响应中得到类似的结果。

{
    "success": true,
    "error": null,
    "results": {
        "example": {
            "name": "Example",
            "HTML": "...",
            "meta": {
                "src": "http://localhost:3000/public/client.js"
            },
            ...
        }
    }
}

我们计划在包含 Nova 视图时将该客户端 URL 注入到 Nova 代理中。

我创建了这个 Github 问题,您可以在其中跟进功能进展。 https://github.com/ara-framework/nova-proxy/issues/10

于 2020-04-28T16:42:48.890 回答