umijs / umi

A framework in react community ✨
https://umijs.org
MIT License
15.3k stars 2.65k forks source link

微前端子项目独立使用mfsu,基座项目加载子项目mf入口文件404 #8316

Open SamWeichangyue opened 2 years ago

SamWeichangyue commented 2 years ago

Discussed in https://github.com/umijs/umi/discussions/8314

Originally posted by **SamWeichangyue** June 30, 2022 微前端基座项目部署至公网上例如www.devxxx.com. 本地子项目开启mfsu,wenpack配置publicPath: http://localhost:8080/ 基座项目 访问本地开发环境 http://localhost:8080/mf-va_remoteEntry.js mfsu的入口文件会404,类似于[issue#7044](https://github.com/umijs/umi/pull/7044) version - "webpack": "^5.72.1", - "webpack-cli": "^4.9.2", - "webpack-dev-server": "^4.8.1" - "@umijs/mfsu": "4.0.2", demo: https://github.com/SamWeichangyue/test-mfsu.git
frontend-winter commented 2 years ago

解决了吗

stormslowly commented 2 years ago

直接访问 mfsu entry 是 200 话; 可以对比下请求头看看 是不是命中什么规则 导致 404 了

steven-adon commented 2 years ago

解决了吗

Excalibur0w0 commented 2 years ago

我遇到了同样的问题,请问有解决方案吗?

flycj commented 1 year ago

遇到类似问题,请问解决了吗?

stormslowly commented 1 year ago

遇到类似问题,请问解决了吗?

你好 有复现吗? issue 里面的描述的信息太少了

SamWeichangyue commented 1 year ago

几个月之前我是在webpack 的devServer里这么修改的,仅供参考

setupMiddlewares(middlewares, devServer) {
  middlewares.unshift(
    ...mfsuInstance.getMiddlewares()
  )
  middlewares.push({
    name: 'fixMfsuInMicroFrontend',
    path: '/mf-va_remoteEntry.js',
    middleware: (req, res) => {
      const tmpPath = join(process.cwd(), ".mfsu")
      try {
        const content = readFileSync(
          join(tmpPath, "mf-va_remoteEntry.js"),
        );
        res.send(content);
      }catch (err) {
      }
    },
  });
  return middlewares
}