我一直在尝试使用单spa,并了解开发人员经验的基础。创建一个包裹,从一个唯一的端口开始纱线,将引用添加到导入地图声明中,依此类推。面临的挑战是,随着我的root配置越来越多,管理端口和导入映射的模块开始变得乏味。我想要的是将这些模块发布到中央存储库,然后从那里加载它们(例如,http : //someserver.com/repository/moduleA/myorg-modulea.js等)。
我最近被介绍给localstack,并开始考虑也许可以使用本地S3存储桶。我有一个配置,其中构建(纱线构建)自动发布到在本地堆栈上运行的s3存储桶中。但是,当我尝试从存储桶中加载根配置index.html时,出现以下JS错误:
Unable to resolve bare specifier '@myorg/root-config'
我可以通过curl很好地访问每个包裹和root-config的JS文件,所以我想这对于以相同方式使用的任何http服务器都是一个问题。我可以翻转根配置以改为使用标准的webpack-dev-server(在端口9000上),并且可以正常运行。因此,我猜测生产构建如何解析这些模块与本地构建之间存在差异。
有没有人尝试过类似的方法并使它起作用?
http-server
通过将每个子.js文件添加到root-config目录中的子文件夹并在root-config目录级别启动Web服务器,我遇到了类似的问题。
"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
以使所有内容正常运行。
我对此挂了一段时间,所以希望这可以引导您朝正确的方向发展。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句