首先,基于 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/blog/2019/08/27/nuxt-js以及按照文档中所述设置集群和代理https://ara-framework.github.io/website/docs/nova-cluster https://ara-framework.github.io/website/docs/nova-cluster
在 Nuxt 应用程序的 App shell 中,我需要包含这样的客户端脚本
head: {
script: [
{ src: 'http://localhost:3000/public/client.js' },
{ src: 'http://localhost:3001/public/client.js' }
]
}
是否有更好的方法来发现和加载此脚本,类似于由代理和集群服务器处理的服务器端部分?当前方法的问题是我需要事先知道 nova 服务器客户端脚本部署在哪里。
正如您在评论中所描述的,使用NovaMount
event 是迄今为止最好的方法。不幸的是,如果没有明确定义捆绑包 URL,还没有任何现成的方法可以做到这一点。
但是,我们计划添加一个新功能新星代理 https://github.com/ara-framework/nova-proxy让这变得更容易。
In the getComponent
助手,我们可以使用returnMeta
第二个参数中的属性,用于在 Hypernova 响应中返回客户端脚本 URL。
hypernova({
getComponent (name, { returnMeta }) {
returnMeta.src = 'http://localhost:3000/public/client.js'
}
})
我们在超新星响应中得到了类似的结果。
{
"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 https://github.com/ara-framework/nova-proxy/issues/10
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)