originjs / vite-plugin-federation

Module Federation for vite & rollup
Other
2.4k stars 242 forks source link

module federation react typescript webpack and vite throws an error "Loading script failed." #576

Open adirzoari opened 9 months ago

adirzoari commented 9 months ago

Versions

Steps to reproduce

  1. Set up a host project using React, TypeScript, and Webpack.
  2. Set up a remote project using Vite.
  3. Configure module federation between the host and remote projects.
  4. Run the projects and observe the error "Loading script failed."

What is Expected?

The projects should successfully run with module federation configured, and no "Loading script failed" error should occur.

What is actually happening?

Encounter the error "Loading script failed" when trying to run the host and remote projects with module federation configured.

When I run each of them alone:

screenshot:

Screenshot 2024-02-20 at 18 32 55

Screenshot 2024-02-20 at 18 33 24

Additional Details #### Host Project - `config-overrides.js` ```javascript // Your config-overrides.js content goes here `const path = require('path'); const hashValue = Date.now(); const { dependencies } = require('./package.json'); const { ModuleFederationPlugin } = require('webpack').container; module.exports = { experiments: { outputModule: true, }, webpack: function (config, env) { config.output.filename = `[name].${hashValue}.js`; config.output.chunkFilename = `[name].${hashValue}.chunk.js`; config.output.path = path.join(__dirname, 'build'); config.output.publicPath = 'auto'; config.plugins = [ ...config.plugins, new ModuleFederationPlugin({ name: 'HostPoc', remotes: { PrimeDev: 'PrimeDev@http://localhost:4173/assets/remoteEntry.js', }, shared: ['react', 'react-dom', 'react-router-dom'], }), ]; return config; }, }; ` #### Host project import the remote ```javascript const PrimeDev = React.lazy(() => import('primeDev/App')); ... ... .. } /> ` #### Remote Project - `vite-overrides.ts` ```javascript /import { defineConfig } from "vite"; import react from "@vitejs/plugin-react"; import federation from "@originjs/vite-plugin-federation"; export default defineConfig({ plugins: [ react(), federation({ name: "PrimeDev", filename: "remoteEntry.js", exposes: { "./App": { import: "./src/App", name: "App", }, }, shared: ["react", "react-dom"], }), ], build: { modulePreload: false, target: "esnext", minify: false, cssCodeSplit: false, rollupOptions: { output: { format: "esm", entryFileNames: "assets/[name].js", minifyInternalExports: false, }, }, }, }); `
romidzz commented 9 months ago

same issue to me, any solution?

idanlevi1 commented 9 months ago

Same issue for me! Have you found any solution?

Lau08 commented 6 days ago

Is there an update on this issue? I have also his problem image