当前位置: 首页 > news >正文

汉中网站建设服务网站的建设内容

汉中网站建设服务,网站的建设内容,快速seo软件,手机端网站做app开发在node18环境下#xff0c;用react18创建qiankun主应用和两个子应用#xff0c;react路由用V6版本#xff0c;都在/main路由下访问子应用#xff0c;用Dockerfile部署到腾讯云CentOS7.6服务器的8000端口进行访问#xff0c;且在部署过程中进行nginx配置以进行合理的路由访…在node18环境下用react18创建qiankun主应用和两个子应用react路由用V6版本都在/main路由下访问子应用用Dockerfile部署到腾讯云CentOS7.6服务器的8000端口进行访问且在部署过程中进行nginx配置以进行合理的路由访问 要在 Node.js 18 环境下用 React 18 创建一个基于 qiankun 的主应用和两个子应用并使用 React Router v6 进行路由管理所有子应用都在 /main 路由下访问并使用 Docker 和 Nginx 部署到腾讯云 CentOS 7.6 服务器的 8000 端口可以按照以下步骤进行 1. 创建主应用和子应用 主应用 创建主应用 npx create-react-app main-app --template typescript cd main-app安装 qiankun 和 react-router-dom npm install qiankun react-router-dom6配置主应用 在 index.tsx 中配置 qiankun import React from react; import ReactDOM from react-dom; import { BrowserRouter as Router, Route, Routes } from react-router-dom; import { registerMicroApps, start } from qiankun; import App from ./App;registerMicroApps([{name: sub-app-1,entry: //localhost:7100,container: #subapp-viewport,activeRule: /main/sub-app-1,},{name: sub-app-2,entry: //localhost:7200,container: #subapp-viewport,activeRule: /main/sub-app-2,}, ]);start();ReactDOM.render(React.StrictModeRouterRoutesRoute path/* element{App /} //Routes/Router/React.StrictMode,document.getElementById(root) );修改 App.tsx import React from react; import { Link } from react-router-dom;const App () (divnavulliLink to/main/sub-app-1Sub App 1/Link/liliLink to/main/sub-app-2Sub App 2/Link/li/ul/navdiv idsubapp-viewport/div/div );export default App;子应用 1 创建子应用 1 npx create-react-app sub-app-1 --template typescript cd sub-app-1安装 qiankun 和 react-router-dom npm install qiankun react-router-dom6配置子应用 1 在 index.tsx 中添加 qiankun 的生命周期函数 import React from react; import ReactDOM from react-dom; import { BrowserRouter as Router, Route, Routes } from react-router-dom; import App from ./App;if (window.__POWERED_BY_QIANKUN__) {// eslint-disable-next-line typescript-eslint/ban-ts-comment// ts-ignore__webpack_public_path__ window.__INJECTED_PUBLIC_PATH_BY_QIANKUN__; }function render(props) {const { container } props;ReactDOM.render(React.StrictModeRouter basename{window.__POWERED_BY_QIANKUN__ ? /main/sub-app-1 : /}RoutesRoute path/* element{App /} //Routes/Router/React.StrictMode,container ? container.querySelector(#root) : document.getElementById(root)); }if (!window.__POWERED_BY_QIANKUN__) {render({}); }export async function bootstrap() {console.log(sub-app-1 bootstraped); }export async function mount(props) {console.log(sub-app-1 mounted);render(props); }export async function unmount(props) {console.log(sub-app-1 unmounted);const { container } props;ReactDOM.unmountComponentAtNode(container ? container.querySelector(#root) : document.getElementById(root)); }配置 package.json {name: sub-app-1,version: 0.1.0,private: true,homepage: /main/sub-app-1,dependencies: {react: ^18.0.0,react-dom: ^18.0.0,react-scripts: 5.0.0,qiankun: ^2.4.0,react-router-dom: ^6.0.0},scripts: {start: PORT7100 react-scripts start,build: react-scripts build,test: react-scripts test,eject: react-scripts eject} }子应用 2 子应用 2 的步骤和 子应用 1 基本一致项目名不一样和Router的 basename 不一样即可端口为 7200或者自行定义和主应用和子应用1端口不一样即可 2. 创建 Dockerfile 为每个应用创建 Dockerfile并使用 Nginx 作为静态文件服务器。 主应用 Dockerfile 在 main-app 目录下创建 Dockerfile # Build stage FROM node:18 AS build# Set the working directory WORKDIR /app# Copy the package.json and package-lock.json files COPY package*.json ./# Install dependencies RUN npm install# Copy the rest of the application code COPY . .# Build the application RUN npm run build# Production stage FROM nginx:alpine# Copy the built files from the build stage COPY --frombuild /app/build /usr/share/nginx/html# Copy the Nginx configuration file COPY nginx.conf /etc/nginx/nginx.conf# Expose port 80 EXPOSE 80# Start Nginx CMD [nginx, -g, daemon off;]子应用 1 Dockerfile 在 sub-app-1 目录下创建 Dockerfile # Build stage FROM node:18 AS build# Set the working directory WORKDIR /app# Copy the package.json and package-lock.json files COPY package*.json ./# Install dependencies RUN npm install# Copy the rest of the application code COPY . .# Build the application RUN npm run build# Production stage FROM nginx:alpine# Copy the built files from the build stage COPY --frombuild /app/build /usr/share/nginx/html# Copy the Nginx configuration file COPY nginx.conf /etc/nginx/nginx.conf# Expose port 80 EXPOSE 80# Start Nginx CMD [nginx, -g, daemon off;]子应用 2 Dockerfile 在 sub-app-2 目录下创建 Dockerfile # Build stage FROM node:18 AS build# Set the working directory WORKDIR /app# Copy the package.json and package-lock.json files COPY package*.json ./# Install dependencies RUN npm install# Copy the rest of the application code COPY . .# Build the application RUN npm run build# Production stage FROM nginx:alpine# Copy the built files from the build stage COPY --frombuild /app/build /usr/share/nginx/html# Copy the Nginx configuration file COPY nginx.conf /etc/nginx/nginx.conf# Expose port 80 EXPOSE 80# Start Nginx CMD [nginx, -g, daemon off;]3. 创建 Nginx 配置文件 为每个应用创建一个 Nginx 配置文件 nginx.conf。 主应用 Nginx 配置文件 在 main-app 目录下创建 nginx.conf server {listen 80;server_name localhost;location / {root /usr/share/nginx/html;index index.html index.htm;try_files $uri $uri/ /index.html;}location /main/sub-app-1/ {proxy_pass http://localhost:7100/;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header X-Forwarded-Proto $scheme;}location /main/sub-app-2/ {proxy_pass http://localhost:7200/;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header X-Forwarded-Proto $scheme;} }子应用 1 和子应用 2 Nginx 配置文件 在 sub-app-1 和 sub-app-2 目录下分别创建 nginx.conf server {listen 80;server_name localhost;location / {root /usr/share/nginx/html;index index.html index.htm;try_files $uri $uri/ /index.html;} }4. 构建和运行 Docker 容器 在每个应用的目录下运行以下命令构建 Docker 镜像 docker build -t main-app . docker build -t sub-app-1 . docker build -t sub-app-2 .然后运行 Docker 容器 docker run -d -p 8000:80 main-app docker run -d -p 7100:80 sub-app-1 docker run -d -p 7200:80 sub-app-25. 部署到腾讯云 CentOS 7.6 服务器 连接到腾讯云服务器 使用 SSH 连接到你的腾讯云 CentOS 7.6 服务器。 ssh your-usernameyour-server-ip安装 Docker 如果你的服务器上还没有安装 Docker可以使用以下命令安装 sudo yum update -y sudo yum install -y docker sudo systemctl start docker sudo systemctl enable docker将 Docker 镜像推送到 Docker Hub 在本地机器上将构建的 Docker 镜像推送到 Docker Hub docker tag main-app your-dockerhub-username/main-app docker tag sub-app-1 your-dockerhub-username/sub-app-1 docker tag sub-app-2 your-dockerhub-username/sub-app-2docker push your-dockerhub-username/main-app docker push your-dockerhub-username/sub-app-1 docker push your-dockerhub-username/sub-app-2在服务器上拉取并运行 Docker 镜像 在服务器上拉取并运行 Docker 镜像 docker pull your-dockerhub-username/main-app docker pull your-dockerhub-username/sub-app-1 docker pull your-dockerhub-username/sub-app-2docker run -d -p 8000:80 your-dockerhub-username/main-app docker run -d -p 7100:80 your-dockerhub-username/sub-app-1 docker run -d -p 7200:80 your-dockerhub-username/sub-app-2通过这些步骤你可以在 Node.js 18 环境下用 React 18 创建一个基于 qiankun 的主应用和两个子应用并使用 Nginx 作为静态文件服务器部署到腾讯云 CentOS 7.6 服务器的 8000 端口进行访问。这样可以确保各个应用的隔离性和独立性同时通过 /main 路由访问子应用。
http://www.w-s-a.com/news/687444/

相关文章:

  • 织梦网站安装视频做网站都有那些步骤
  • 网站空间大小选择沈阳微信网站制作
  • 网站分享对联广告网站结构的类型
  • 三维家是在网站上做还是在app上北京网站建设 专业10年
  • 模拟网站建设网站建设认准猪八戒网
  • godaddy网站建设教程微信手机网站搭建
  • 网站建设 商城淄博网站制作哪家好
  • 廊坊手机网站团队国际贸易进口代理公司
  • 运用django做网站网站建设问题及解决办法
  • 商丘企业网站服务c mvc 网站开发
  • 太仓建设工程网站广州seo排名外包
  • 成都的教育品牌网站建设做网站不给提供ftp
  • 建站行业市场人力管理系统
  • qq钓鱼网站在线生成器google关键词搜索工具
  • 化妆网站模板移动网站建设模板
  • 欢迎访问语文建设杂志网站网站蓝色配色
  • 最新网站发布重庆城乡建设部网站首页
  • 网站建设费用高鄂尔多斯seo
  • dw做网站怎么发布网站无后台可以上框架
  • 网络公司如何建网站网站的建设需要多少钱
  • 代刷网站推广快速泉州网页定制
  • 网站优秀网站地址做宣传册的公司
  • 苏州高端网站建设咨询wordpress云图插件
  • 河北省建设厅网站重新安装优秀中文网页设计
  • 如何在腾讯云做网站开源站群cms
  • 公司网站建设的意义网易做网站
  • 网络营销案例分析与实践搜外seo
  • 手机建网站挣钱吗wordpress面包屑
  • 淘客做网站怎么备案网站开发工具的是什么
  • 提供大良网站建设郑州网站建设网站开发