问题标签 [single-spa]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
jquery - Font Awesome 和 JQuery 在单个 SPA Angular 应用程序中不起作用
我创建了一个单水疗角应用程序,在其中我使用“npm install --save bootstrap jquery@3.4.1 font-awesome”安装了 font-awesome 和 jquery 和 bootstrap。之后,我在 angular.json 文件中提供了这个 js 和 css 的 url,所以我面临的问题是 jquery 和 font-awesome 在我以正常角度模式运行此应用程序时工作正常,但是当我尝试运行时出现问题此应用程序在单水疗模式下。在单水疗模式下,jQuery 和 font-awesome 不起作用,但我无法理解我的引导样式正在工作,但为什么即使我在 angular.json 文件中提供了 font-awesome url,我也面临 font-awesome 的问题就像我为引导程序提供 url 一样。
注意:我通过在已经存在的角度应用程序的根文件夹中运行“ng add single-spa-angular”命令创建了这个单一的 spa 角度应用程序。
我们可以使用“ng serve -o”命令以正常角度模式运行应用程序。但是要在单水疗模式下运行这个应用程序,我们必须运行这个命令“npm run serve:single-spa:”。
谢谢
reactjs - 在没有 CDN 的微前端包之间共享反应
我正在使用带有 Single-Spa 框架的微前端架构构建应用程序。
我有:
- 根配置 Web 应用程序:定义应用程序的布局并将每个微前端作为 NPM 依赖项包含在内
- N 微前端:加载到根配置应用程序中的反应应用程序。
因为每个微前端都在使用 React,所以我不想每次都捆绑它。相反,我想让根配置应用程序将 React 指定为依赖项,然后每个微前端都可以加载它。
我已经将 react 和 react-dom 声明为 webpack 外部,因此它们没有被捆绑,但我认为这只有在我的根配置应用程序的 index.html 中包含来自 CDN 的 React 时才有效。有没有办法配置 webpack,以便它将 React 包含在根配置中并使其可用于每个微前端?我不能在我的公司中使用公共 CDN。
谢谢!
javascript - publicPath 不起作用,但 __webpack_public_path__ 起作用
我正在构建一个单一的 SPA 应用程序,并且面临部署问题。我将每个应用程序部署在一个子目录(app-bar-mf、products-mf 等)中,并将 root-config(主应用程序)部署在基础上。
在本地工作时,每个应用程序都通过它自己的服务器(localhost:9000、localhost:9001 等)提供服务,因此这里没有子目录。
当我尝试部署时,不使用 publicPath,并且通过“/img/foo.png”而不是“/products-mf/img/foo.png”提供资产。
如果我__webpack_public_path__
在 main.js 中设置,一切都会按预期进行。
有什么线索吗?
vue.config.js
angular - [angular][single-spa] 不同操作系统的不同构建结果
我有一个使用 single-spa-angular 框架的 Angular 应用程序:https ://single-spa.js.org/
通过在两个不同的环境上进行相同的构建,我有两个不同的 dist 内容。在本地,我们在 windows 环境中。在 jenkins 管道中,我们处于 linux 环境中。
如果与其他单水疗模块集成,则环境窗口上的结果可以工作。ambiene linux 的结果不起作用。
差异在生成的块数量上很明显(在 linux 版本中还有一个不起作用)
您知道为什么会出现这种差异以及如何解决问题吗?
谢谢你们。
reactjs - 如何在 single-spa 中跨不同微应用共享数据
我了解如何在使用时将自定义道具传递给不同的微应用,single-spa
但我想知道如何获取 api 调用表单 app1 的输出并在 app2 中使用它。app1 正在使用react-redux
,app2 将使用react hooks
.
或者我如何调用 root api 调用并在所有微应用程序之间共享输出。以上是我的index.js
,由webpack
.
我正在使用 single-spa 版本 4.x 和 webpack 4.x
spring-boot - 与服务器端呈现的 html 页面的单一 SPA 集成
我有一个应用程序,其中 UI 使用 Thymeleaf 在服务器端呈现,后端在 Spring Boot 中。
现在,我们需要将此应用程序与另一个反应应用程序结合起来。所以,它应该像微前端架构。
为此,我正在评估框架 Single-SPA,当我们有单独的前端项目并且需要将它们组合成一个时,这似乎是一个不错的选择。
是否可以将现有的 SSR 页面与 Single-SPA 集成?
reactjs - 单spa环境下如何在.test.js文件中导入其他应用导出的文件
嗨,我实际上需要在一些 jest 文件中将导出的文件从一个应用程序(commons)导入到其他应用程序(登录),但它没有被 jest 检测到。
笑话测试文件:
错误信息:
FAIL src/Components/LoginPage.test.js ● 测试套件运行失败
jest.config.js
但是该文件正在以相同的语法导入到组件文件中。如何在 jest 测试文件中导入文件?
webpack - 在多个微前端应用程序之间共享 LESS 变量
我试图弄清楚是否有可能在不同的 React 项目之间共享 LESS 变量。我正在使用 Single-SPA 构建微前端架构。我的微前端正在使用一些共享组件,例如react-microfrontend 示例使用react-mf/styleguide。除此之外,我还需要共享一些 LESS 变量(例如颜色或排版),这样我就可以在我的样式指南项目中定义一次,然后在我将定义的每个微前端中引用它们。那可能吗 ?如果是的话,你能给我建议一种方法吗?我想解决方案是使用 webpack,但我找不到正确的方法。
typescript - 如何将单个 spa 浏览器内实用程序模块导入 TypeScript 包裹项目
我在下面有 3 个 TypeScript 项目:
- 根配置
- 包裹,让我们称之为
my-app
- 浏览器内的实用模块,让我们称之为
api
以上所有项目都是使用create-single-spa
命令生成的。
在api/src/lomse-api.ts
文件中,我正在导出fetchPeople
模块,如下所示:
根据single-spa 文档,鉴于我orgName
的 islomse
和projectName
is api
,我应该能够将fetchPeople
模块导入my-app
(包裹应用程序),如下所示:
由于my-app
project 是一个 TypeScript 项目,上面的语句肯定会抛出下面的错误:
有没有办法来解决这个问题?
angular - SingleSpa CKEditorError: ckeditor-duplicated-modules
我有一个用Single-spa制作的应用程序。这个应用程序有一些 angular8 应用程序,其中一些带有 CKEditor5 组件。
当我启动其中一个应用程序时,它就像魅力一样。
但是当我从一个使用 CKEditor 的应用程序切换到另一个使用 CKEditor 的应用程序时,我得到了
错误 CKEditorError: ckeditor-duplicated-modules 阅读更多:https://ckeditor.com/docs/ckeditor5/latest/framework/guides/support/error-codes.html#error->ckeditor-duplicated-modules at Object。(http://localhost:4208/main.js:295262:7781) 在 Object../src/assets/libs/ckeditor/build/ckeditor.js (http://localhost:4208/main.js:295262: 7848) 在模块的 n (http://localhost:4208/main.js:295262:1001)。(http://localhost:4208/main.js:295262:175115) 在 n (http://localhost:4208/main.js:295262:1001) 在 ./src/assets/libs/ckeditor/build/ckeditor .js (http://localhost:4208/main.js:295262:1800) 在 http://localhost:4208/main.js:295262:1810 在 http://localhost:4208/main.js:295262: 852 在 Object../src/assets/libs/ckeditor/build/ckeditor.js (http://localhost:4208/main.js:295262:866) 在webpack_require(http://localhost:4208/main.js:30:30)
我尝试过使用不同的编辑器,我尝试过自定义构建来停用所有插件,但仍然如此。
有人能帮我吗?谢谢!