모놀리식에서 마이크로 프론트엔드로 - 2부
목차
Migrating React Application
React 애플리케이션 마이그레이션
To migrate any existing React application I followed this documentation from single-spa 및 또한 이 GitHubrepo에서 완전한 작동 솔루션을 찾을 수 있습니다.기존 React 애플리케이션이 이미 있다고 가정합니다.
단일 스파 애플리케이션으로 마이그레이션
npm
또는 yarn
사용npm i single-spa single-spa-react
// or with yarn
yarn add single-spa single-spa-react
touch src/root.app.js
이 파일 내에서 렌더링할 최상위 React 구성 요소인 루트 구성 요소를 설정합니다. 우리의 경우 App.js 내부의 App Component가 될 것입니다.
root.app.js 내부의 코드는 다음과 같아야 합니다.
이 시점이 끝나면 루트 구성 내부에 등록할 수 있는 단일 스파 애플리케이션이 있습니다.
추가 구성
Now let's configure our root-config, replace the code inside your index.js file with the code below
by doing this we are doing several steps, telling the single-spa to register your React application using
registerApplication
and start the application by calling the start()
function.
이 방법을 사용한 마이그레이션의 이점
<울>
react-script
. eject
웹팩을 재구성할 필요가 없습니다. 같은 스크립트를 사용하여 애플리케이션을 실행할 수 있습니다npm start
.
<시간/>
Migrating Angular Application
To migrate any existing Angular application I followed this documentation from single-spa I am assuming you already have an existing Angular application.
in my case, I am using Angular version 10
- Inside your root folder run the following command
ng add single-spa-angular
According to single-spa
documentation, this command will:
- Install single-spa-angular.
- Generate a main.single-spa.ts in your project src/.
- Generate single-spa-props.ts in src/single-spa/.
- Generate asset-url.ts in src/single-spa/.
- Generate an EmptyRouteComponent in src/app/empty-route/, to be used in app-routing.module.ts.
- Add an npm script npm run build:single-spa.
- Add an npm script npm run serve:single-spa.
and also will:
- Add single-spa as a dependency, you will need to install it, as it not installed by default, it will be only added to your package.json, you can install it manually
npm i single-spa
or in your root folder where your package.json
located run
npm i
which will refresh your dependencies tree and install any missing package.
- Generate extra-webpack.config.js
- Update build option inside angular.json and use @angular-builders/custom-webpack instead of @angular-devkit/build-angular you will need to install other dependencies by running
npm i @angular-builders/custom-webpack
npm i @types/[email protected] --saveDev
Extra Steps to complete the migration
Some of these steps are not documented in the single-spa documentation, and I figured it out while I was migrating the application
- Inside
app.module.ts
file
import {APP_BASE_HREF} from '@angular/common';
and add this object to the providers
array
{provide: APP_BASE_HREF, useValue: '/'}
Inside tsconfig.app.json, add
node
to types array"types": ["node"]
In package.json,
--deploy-url
flag should be set to the host URL, In order for the webpack public path to be correctly set for your assets, see this Stack Overflow answer .
The result of this migration is a compiled JS file. After finishing the migration you can run the Angular application using this command
npm run serve:single-spa:angular-app
Which will start a dev server that is serving your js file, which will be located in http://localhost:4200/main.js
Conclusion
지금까지 한 일:
<울>
이 Githubrepo에서 완전한 작업 솔루션을 찾을 수 있으며 게시된 각 부분에 따라 업데이트됩니다.
다음 파트에서는 루트 구성 파일에 Angular 애플리케이션을 등록하는 방법에 대해 자세히 설명합니다.
Reference
이 문제에 관하여(모놀리식에서 마이크로 프론트엔드로 - 2부), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/abdelrahman_hussein/from-monolithic-to-micro-frontends-part-2-3oa0텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)