create-module-federation 0.0.0 → 0.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +40 -0
  3. package/dist/LICENSE +21 -0
  4. package/dist/index.js +366 -0
  5. package/package.json +44 -8
  6. package/templates/consumer-modern-ts/modern.config.ts +15 -0
  7. package/templates/consumer-modern-ts/module-federation.config.ts.handlebars +12 -0
  8. package/templates/consumer-modern-ts/src/routes/page.tsx +21 -0
  9. package/templates/consumer-rsbuild-ts/module-federation.config.ts.handlebars +12 -0
  10. package/templates/consumer-rsbuild-ts/rsbuild.config.ts +8 -0
  11. package/templates/consumer-rsbuild-ts/src/App.tsx +12 -0
  12. package/templates/lib-common/module-federation.config.ts.handlebars +17 -0
  13. package/templates/lib-common/rslib.config.ts +52 -0
  14. package/templates/lib-common/src/index.css +53 -0
  15. package/templates/lib-common/src/index.tsx +19 -0
  16. package/templates/lib-common/tsconfig.json +14 -0
  17. package/templates/modern-common/.browserslistrc +5 -0
  18. package/templates/modern-common/.nvmrc +1 -0
  19. package/templates/modern-common/.vscode/extensions.json +14 -0
  20. package/templates/modern-common/.vscode/settings.json +88 -0
  21. package/templates/modern-common/README.md +37 -0
  22. package/templates/modern-common/biome.json +34 -0
  23. package/templates/modern-common/package.json.handlebars +45 -0
  24. package/templates/modern-common/src/modern-app-env.d.ts +3 -0
  25. package/templates/modern-common/src/modern.runtime.ts +3 -0
  26. package/templates/modern-common/src/routes/index.css +41 -0
  27. package/templates/modern-common/src/routes/layout.tsx +9 -0
  28. package/templates/modern-common/tsconfig.json +15 -0
  29. package/templates/provider-modern-ts/modern.config.ts +18 -0
  30. package/templates/provider-modern-ts/module-federation.config.ts.handlebars +12 -0
  31. package/templates/provider-modern-ts/src/components/ProviderComponent.css +52 -0
  32. package/templates/provider-modern-ts/src/components/ProviderComponent.tsx +19 -0
  33. package/templates/provider-modern-ts/src/routes/page.tsx +21 -0
  34. package/templates/provider-rsbuild-ts/module-federation.config.ts.handlebars +12 -0
  35. package/templates/provider-rsbuild-ts/rsbuild.config.ts +11 -0
  36. package/templates/provider-rsbuild-ts/src/App.tsx +12 -0
  37. package/templates/provider-rsbuild-ts/src/components/ProviderComponent.css +52 -0
  38. package/templates/provider-rsbuild-ts/src/components/ProviderComponent.tsx +19 -0
  39. package/templates/provider-rslib-storybook-ts/.storybook/main.ts.handlebars +41 -0
  40. package/templates/provider-rslib-storybook-ts/README.md +27 -0
  41. package/templates/provider-rslib-storybook-ts/package.json.handlebars +50 -0
  42. package/templates/provider-rslib-storybook-ts/stories/Index.stories.tsx +11 -0
  43. package/templates/provider-rslib-ts/README.md +19 -0
  44. package/templates/provider-rslib-ts/package.json.handlebars +35 -0
  45. package/templates/rsbuild-common/README.md +29 -0
  46. package/templates/rsbuild-common/package.json.handlebars +22 -0
  47. package/templates/rsbuild-common/public/.gitkeep +0 -0
  48. package/templates/rsbuild-common/src/App.css +15 -0
  49. package/templates/rsbuild-common/src/bootstrap.tsx +13 -0
  50. package/templates/rsbuild-common/src/env.d.ts +1 -0
  51. package/templates/rsbuild-common/src/index.tsx +1 -0
  52. package/templates/rsbuild-common/tsconfig.json +26 -0
@@ -0,0 +1,53 @@
1
+ .container {
2
+ display: flex;
3
+ flex-direction: column;
4
+ align-items: center;
5
+ justify-content: center;
6
+ height: 60vh;
7
+ padding: 10vh;
8
+ background: linear-gradient(45deg, #3a65f2, #6a5acd, #8a2be2, #023cfc);
9
+ background-size: 400% 400%;
10
+ animation: gradientFlow 6s ease infinite;
11
+ }
12
+
13
+ .icon-container {
14
+ width: 180px;
15
+ margin-bottom: 20px;
16
+ position: relative;
17
+ transition: all 0.3s ease;
18
+ }
19
+
20
+ .logo-image {
21
+ width: 100%;
22
+ transition: opacity 0.3s ease;
23
+ }
24
+
25
+ .title {
26
+ font-size: 3rem;
27
+ color: #fff;
28
+ margin-bottom: 20px;
29
+ animation: fadeInUp 1s ease-out;
30
+ }
31
+
32
+ @keyframes gradientFlow {
33
+ 0% {
34
+ background-position: 0% 50%;
35
+ }
36
+ 50% {
37
+ background-position: 100% 50%;
38
+ }
39
+ 100% {
40
+ background-position: 0% 50%;
41
+ }
42
+ }
43
+
44
+ @keyframes fadeInUp {
45
+ from {
46
+ opacity: 0;
47
+ transform: translateY(20px);
48
+ }
49
+ to {
50
+ opacity: 1;
51
+ transform: translateY(0);
52
+ }
53
+ }
@@ -0,0 +1,19 @@
1
+ import React from 'react';
2
+ import './index.css';
3
+
4
+ const Provider: React.FC = () => {
5
+ return (
6
+ <div className="container">
7
+ <div className="icon-container">
8
+ <img
9
+ src="https://module-federation.io/svg.svg"
10
+ alt="logo"
11
+ className="logo-image"
12
+ />
13
+ </div>
14
+ <h1 className="title">Hello Module Federation 2.0</h1>
15
+ </div>
16
+ );
17
+ };
18
+
19
+ export default Provider;
@@ -0,0 +1,14 @@
1
+ {
2
+ "compilerOptions": {
3
+ "lib": ["DOM", "ES2021"],
4
+ "module": "ESNext",
5
+ "jsx": "react-jsx",
6
+ "strict": true,
7
+ "skipLibCheck": true,
8
+ "isolatedModules": true,
9
+ "resolveJsonModule": true,
10
+ "moduleResolution": "bundler",
11
+ "useDefineForClassFields": true
12
+ },
13
+ "include": ["src"]
14
+ }
@@ -0,0 +1,5 @@
1
+ chrome >= 51
2
+ edge >= 15
3
+ firefox >= 54
4
+ safari >= 10
5
+ ios_saf >= 10
@@ -0,0 +1 @@
1
+ lts/hydrogen
@@ -0,0 +1,14 @@
1
+ {
2
+ "recommendations": [
3
+ "styled-components.vscode-styled-components",
4
+ "EditorConfig.editorconfig",
5
+ "streetsidesoftware.code-spell-checker",
6
+ "codezombiech.gitignore",
7
+ "aaron-bond.better-comments",
8
+ "jasonnutter.search-node-modules",
9
+ "jock.svg",
10
+ "mikestead.dotenv",
11
+ "vscode-icons-team.vscode-icons",
12
+ "biomejs.biome"
13
+ ]
14
+ }
@@ -0,0 +1,88 @@
1
+ {
2
+ "files.associations": {
3
+ ".code-workspace": "jsonc",
4
+ ".stylelintrc": "jsonc",
5
+ "stylelintrc": "jsonc",
6
+ "README": "markdown"
7
+ },
8
+ "search.useIgnoreFiles": true,
9
+ "search.exclude": {
10
+ "**/dist": true,
11
+ "**/*.log": true,
12
+ "**/*.pid": true,
13
+ "**/.git": true,
14
+ "**/node_modules": true
15
+ },
16
+ //
17
+ "editor.rulers": [80, 120],
18
+ "files.eol": "\n",
19
+ "files.trimTrailingWhitespace": true,
20
+ "files.insertFinalNewline": true,
21
+ //
22
+ "cSpell.diagnosticLevel": "Hint",
23
+ "javascript.validate.enable": false,
24
+ "typescript.validate.enable": true,
25
+ "css.validate": false,
26
+ "scss.validate": false,
27
+ "less.validate": false,
28
+ "[css]": {
29
+ "editor.formatOnType": true,
30
+ "editor.formatOnPaste": true,
31
+ "editor.formatOnSave": true
32
+ },
33
+ "[scss]": {
34
+ "editor.formatOnType": true,
35
+ "editor.formatOnPaste": true,
36
+ "editor.formatOnSave": true
37
+ },
38
+ "[less]": {
39
+ "editor.formatOnType": true,
40
+ "editor.formatOnPaste": true,
41
+ "editor.formatOnSave": true
42
+ },
43
+ "editor.codeActionsOnSave": {
44
+ "quickfix.biome": "explicit"
45
+ },
46
+ "editor.defaultFormatter": "biomejs.biome",
47
+ "editor.formatOnSave": true,
48
+ "[typescript]": {
49
+ "editor.defaultFormatter": "biomejs.biome",
50
+ "editor.codeActionsOnSave": {
51
+ "quickfix.biome": "explicit",
52
+ "source.organizeImports": "never",
53
+ "source.organizeImports.biome": "explicit"
54
+ }
55
+ },
56
+ "[typescriptreact]": {
57
+ "editor.defaultFormatter": "biomejs.biome",
58
+ "editor.codeActionsOnSave": {
59
+ "quickfix.biome": "explicit",
60
+ "source.organizeImports": "never",
61
+ "source.organizeImports.biome": "explicit"
62
+ }
63
+ },
64
+ "[json]": {
65
+ "editor.defaultFormatter": "biomejs.biome"
66
+ },
67
+ "[jsonc]": {
68
+ "editor.defaultFormatter": "biomejs.biome"
69
+ },
70
+ "[javascriptreact]": {
71
+ "editor.defaultFormatter": "biomejs.biome",
72
+ "editor.codeActionsOnSave": {
73
+ "quickfix.biome": "explicit",
74
+ "source.organizeImports": "never",
75
+ "source.organizeImports.biome": "explicit"
76
+ }
77
+ },
78
+ "[javascript]": {
79
+ "editor.defaultFormatter": "biomejs.biome",
80
+ "editor.codeActionsOnSave": {
81
+ "quickfix.biome": "explicit",
82
+ "source.organizeImports": "never",
83
+ "source.organizeImports.biome": "explicit"
84
+ }
85
+ },
86
+ "emmet.triggerExpansionOnTab": true,
87
+ "typescript.tsdk": "node_modules/typescript/lib"
88
+ }
@@ -0,0 +1,37 @@
1
+ # Modern.js App
2
+
3
+ ## Setup
4
+
5
+ Install the dependencies:
6
+
7
+ ```bash
8
+ pnpm install
9
+ ```
10
+
11
+ ## Get Started
12
+
13
+ Start the dev server:
14
+
15
+ ```bash
16
+ pnpm dev
17
+ ```
18
+
19
+ Enable optional features or add a new entry:
20
+
21
+ ```bash
22
+ pnpm new
23
+ ```
24
+
25
+ Build the app for production:
26
+
27
+ ```bash
28
+ pnpm build
29
+ ```
30
+
31
+ Preview the production build locally:
32
+
33
+ ```bash
34
+ pnpm serve
35
+ ```
36
+
37
+ For more information, see the [Modern.js documentation](https://modernjs.dev/en).
@@ -0,0 +1,34 @@
1
+ {
2
+ "$schema": "https://biomejs.dev/schemas/1.8.3/schema.json",
3
+ "vcs": {
4
+ "enabled": true,
5
+ "defaultBranch": "main",
6
+ "clientKind": "git",
7
+ "useIgnoreFile": true
8
+ },
9
+ "formatter": {
10
+ "enabled": true,
11
+ "indentStyle": "space"
12
+ },
13
+ "javascript": {
14
+ "formatter": {
15
+ "quoteStyle": "single",
16
+ "arrowParentheses": "asNeeded",
17
+ "jsxQuoteStyle": "double",
18
+ "lineWidth": 80
19
+ }
20
+ },
21
+ "linter": {
22
+ "enabled": true,
23
+ "rules": {
24
+ "recommended": true
25
+ }
26
+ },
27
+ "organizeImports": {
28
+ "enabled": true
29
+ },
30
+ "files": {
31
+ "ignoreUnknown": true,
32
+ "ignore": [".vscode/**/*", "node_modules/**/*", "dist/**/*"]
33
+ }
34
+ }
@@ -0,0 +1,45 @@
1
+ {
2
+ "name": "{{ mfName }}",
3
+ "version": "0.1.0",
4
+ "scripts": {
5
+ "reset": "npx rimraf node_modules ./**/node_modules",
6
+ "dev": "modern dev",
7
+ "build": "modern build",
8
+ "start": "modern start",
9
+ "serve": "modern serve",
10
+ "new": "modern new",
11
+ "lint": "biome check",
12
+ "prepare": "simple-git-hooks",
13
+ "upgrade": "modern upgrade"
14
+ },
15
+ "engines": {
16
+ "node": ">=16.18.1"
17
+ },
18
+ "lint-staged": {
19
+ "*.{js,ts,cjs,mjs,d.cts,d.mts,jsx,tsx,json,jsonc}": [
20
+ "biome check --files-ignore-unknown=true"
21
+ ]
22
+ },
23
+ "simple-git-hooks": {
24
+ "pre-commit": "npx lint-staged"
25
+ },
26
+ "dependencies": {
27
+ "@modern-js/runtime": "^2.65.1",
28
+ "react": "^18.3.1",
29
+ "react-dom": "^18.3.1"
30
+ },
31
+ "devDependencies": {
32
+ "@modern-js/app-tools": "^2.65.1",
33
+ "@modern-js/tsconfig": "^2.65.1",
34
+ "@biomejs/biome": "1.8.3",
35
+ "typescript": "~5.0.4",
36
+ "@types/jest": "~29.2.4",
37
+ "@types/node": "~18.11.9",
38
+ "@types/react": "^18.3.11",
39
+ "@types/react-dom": "~18.3.1",
40
+ "lint-staged": "~13.1.0",
41
+ "simple-git-hooks": "^2.11.1",
42
+ "rimraf": "^6.0.1",
43
+ "@module-federation/modern-js":"^{{mfVersion}}"
44
+ }
45
+ }
@@ -0,0 +1,3 @@
1
+ /// <reference types='@modern-js/app-tools/types' />
2
+ /// <reference types='@modern-js/runtime/types' />
3
+ /// <reference types='@modern-js/runtime/types/router' />
@@ -0,0 +1,3 @@
1
+ import { defineRuntimeConfig } from '@modern-js/runtime';
2
+
3
+ export default defineRuntimeConfig({});
@@ -0,0 +1,41 @@
1
+ html,
2
+ body {
3
+ padding: 0;
4
+ margin: 0;
5
+ font-family:
6
+ PingFang SC,
7
+ Hiragino Sans GB,
8
+ Microsoft YaHei,
9
+ Arial,
10
+ sans-serif;
11
+ background: linear-gradient(to bottom, transparent, #fff) #eceeef;
12
+ }
13
+
14
+ p {
15
+ margin: 0;
16
+ }
17
+
18
+ * {
19
+ -webkit-font-smoothing: antialiased;
20
+ -moz-osx-font-smoothing: grayscale;
21
+ box-sizing: border-box;
22
+ }
23
+
24
+ .container-box {
25
+ min-height: 100vh;
26
+ max-width: 100%;
27
+ display: flex;
28
+ flex-direction: column;
29
+ justify-content: center;
30
+ align-items: center;
31
+ padding: 50px;
32
+ }
33
+
34
+ .landing-page {
35
+ padding: 20px;
36
+ flex: 1;
37
+ display: flex;
38
+ flex-direction: column;
39
+ justify-content: center;
40
+ align-items: center;
41
+ }
@@ -0,0 +1,9 @@
1
+ import { Outlet } from '@modern-js/runtime/router';
2
+
3
+ export default function Layout() {
4
+ return (
5
+ <div>
6
+ <Outlet />
7
+ </div>
8
+ );
9
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "extends": "@modern-js/tsconfig/base",
3
+ "compilerOptions": {
4
+ "declaration": false,
5
+ "jsx": "preserve",
6
+ "baseUrl": "./",
7
+ "paths": {
8
+ "@/*": ["./src/*"],
9
+ "@shared/*": ["./shared/*"],
10
+ "*": ["./@mf-types/*"]
11
+ }
12
+ },
13
+ "include": ["src", "shared", "config", "modern.config.ts"],
14
+ "exclude": ["**/node_modules"]
15
+ }
@@ -0,0 +1,18 @@
1
+ import { appTools, defineConfig } from '@modern-js/app-tools';
2
+ import { moduleFederationPlugin } from '@module-federation/modern-js';
3
+
4
+ // https://modernjs.dev/en/configure/app/usage
5
+ export default defineConfig({
6
+ runtime: {
7
+ router: true,
8
+ },
9
+ plugins: [
10
+ appTools({
11
+ bundler: 'rspack', // Set to 'webpack' to enable webpack
12
+ }),
13
+ moduleFederationPlugin(),
14
+ ],
15
+ server: {
16
+ port: 3001,
17
+ },
18
+ });
@@ -0,0 +1,12 @@
1
+ import { createModuleFederationConfig } from '@module-federation/modern-js';
2
+
3
+ export default createModuleFederationConfig({
4
+ name: '{{mfName}}',
5
+ exposes: {
6
+ '.': './src/components/ProviderComponent.tsx',
7
+ },
8
+ shared: {
9
+ react: { singleton: true },
10
+ 'react-dom': { singleton: true },
11
+ },
12
+ });
@@ -0,0 +1,52 @@
1
+ .container {
2
+ display: flex;
3
+ flex-direction: column;
4
+ align-items: center;
5
+ justify-content: center;
6
+ height: 100vh;
7
+ background: linear-gradient(45deg, #3a65f2, #6a5acd, #8a2be2, #023cfc);
8
+ background-size: 400% 400%;
9
+ animation: gradientFlow 6s ease infinite;
10
+ }
11
+
12
+ .icon-container {
13
+ width: 180px;
14
+ margin-bottom: 20px;
15
+ position: relative;
16
+ transition: all 0.3s ease;
17
+ }
18
+
19
+ .logo-image {
20
+ width: 100%;
21
+ transition: opacity 0.3s ease;
22
+ }
23
+
24
+ .title {
25
+ font-size: 3rem;
26
+ color: #fff;
27
+ margin-bottom: 20px;
28
+ animation: fadeInUp 1s ease-out;
29
+ }
30
+
31
+ @keyframes gradientFlow {
32
+ 0% {
33
+ background-position: 0% 50%;
34
+ }
35
+ 50% {
36
+ background-position: 100% 50%;
37
+ }
38
+ 100% {
39
+ background-position: 0% 50%;
40
+ }
41
+ }
42
+
43
+ @keyframes fadeInUp {
44
+ from {
45
+ opacity: 0;
46
+ transform: translateY(20px);
47
+ }
48
+ to {
49
+ opacity: 1;
50
+ transform: translateY(0);
51
+ }
52
+ }
@@ -0,0 +1,19 @@
1
+ import React from 'react';
2
+ import './ProviderComponent.css';
3
+
4
+ const Provider: React.FC = () => {
5
+ return (
6
+ <div className="container">
7
+ <div className="icon-container">
8
+ <img
9
+ src="https://module-federation.io/svg.svg"
10
+ alt="logo"
11
+ className="logo-image"
12
+ />
13
+ </div>
14
+ <h1 className="title">Hello Module Federation 2.0</h1>
15
+ </div>
16
+ );
17
+ };
18
+
19
+ export default Provider;
@@ -0,0 +1,21 @@
1
+ import { Helmet } from '@modern-js/runtime/head';
2
+ import './index.css';
3
+ import Provider from '../components/ProviderComponent';
4
+
5
+ const Index = () => (
6
+ <div className="container-box">
7
+ <Helmet>
8
+ <link
9
+ rel="icon"
10
+ type="image/x-icon"
11
+ href="https://lf3-static.bytednsdoc.com/obj/eden-cn/uhbfnupenuhf/favicon.ico"
12
+ />
13
+ </Helmet>
14
+
15
+ <div className="landing-page">
16
+ <Provider />
17
+ </div>
18
+ </div>
19
+ );
20
+
21
+ export default Index;
@@ -0,0 +1,12 @@
1
+ import { createModuleFederationConfig } from '@module-federation/rsbuild-plugin';
2
+
3
+ export default createModuleFederationConfig({
4
+ name: '{{mfName}}',
5
+ exposes: {
6
+ '.': './src/components/ProviderComponent.tsx',
7
+ },
8
+ shared: {
9
+ react: { singleton: true },
10
+ 'react-dom': { singleton: true },
11
+ },
12
+ });
@@ -0,0 +1,11 @@
1
+ import { defineConfig } from '@rsbuild/core';
2
+ import { pluginReact } from '@rsbuild/plugin-react';
3
+ import { pluginModuleFederation } from '@module-federation/rsbuild-plugin';
4
+ import moduleFederationConfig from './module-federation.config';
5
+
6
+ export default defineConfig({
7
+ plugins: [pluginReact(), pluginModuleFederation(moduleFederationConfig)],
8
+ server: {
9
+ port: 3001,
10
+ },
11
+ });
@@ -0,0 +1,12 @@
1
+ import './App.css';
2
+ import Provider from './components/ProviderComponent';
3
+
4
+ const App = () => {
5
+ return (
6
+ <div className="content">
7
+ <Provider />
8
+ </div>
9
+ );
10
+ };
11
+
12
+ export default App;
@@ -0,0 +1,52 @@
1
+ .container {
2
+ display: flex;
3
+ flex-direction: column;
4
+ align-items: center;
5
+ justify-content: center;
6
+ height: 100vh;
7
+ background: linear-gradient(45deg, #3a65f2, #6a5acd, #8a2be2, #023cfc);
8
+ background-size: 400% 400%;
9
+ animation: gradientFlow 6s ease infinite;
10
+ }
11
+
12
+ .icon-container {
13
+ width: 180px;
14
+ margin-bottom: 20px;
15
+ position: relative;
16
+ transition: all 0.3s ease;
17
+ }
18
+
19
+ .logo-image {
20
+ width: 100%;
21
+ transition: opacity 0.3s ease;
22
+ }
23
+
24
+ .title {
25
+ font-size: 3rem;
26
+ color: #fff;
27
+ margin-bottom: 20px;
28
+ animation: fadeInUp 1s ease-out;
29
+ }
30
+
31
+ @keyframes gradientFlow {
32
+ 0% {
33
+ background-position: 0% 50%;
34
+ }
35
+ 50% {
36
+ background-position: 100% 50%;
37
+ }
38
+ 100% {
39
+ background-position: 0% 50%;
40
+ }
41
+ }
42
+
43
+ @keyframes fadeInUp {
44
+ from {
45
+ opacity: 0;
46
+ transform: translateY(20px);
47
+ }
48
+ to {
49
+ opacity: 1;
50
+ transform: translateY(0);
51
+ }
52
+ }
@@ -0,0 +1,19 @@
1
+ import React from 'react';
2
+ import './ProviderComponent.css';
3
+
4
+ const Provider: React.FC = () => {
5
+ return (
6
+ <div className="container">
7
+ <div className="icon-container">
8
+ <img
9
+ src="https://module-federation.io/svg.svg"
10
+ alt="logo"
11
+ className="logo-image"
12
+ />
13
+ </div>
14
+ <h1 className="title">Hello Module Federation 2.0</h1>
15
+ </div>
16
+ );
17
+ };
18
+
19
+ export default Provider;
@@ -0,0 +1,41 @@
1
+ import { dirname, join } from 'node:path';
2
+ import type { StorybookConfig } from 'storybook-react-rsbuild';
3
+
4
+ /**
5
+ * This function is used to resolve the absolute path of a package.
6
+ * It is needed in projects that use Yarn PnP or are set up within a monorepo.
7
+ */
8
+ function getAbsolutePath(value: string): any {
9
+ return dirname(require.resolve(join(value, 'package.json')));
10
+ }
11
+
12
+ const config: StorybookConfig = {
13
+ stories: [
14
+ '../stories/**/*.mdx',
15
+ '../stories/**/*.stories.@(js|jsx|mjs|ts|tsx)',
16
+ ],
17
+ framework: {
18
+ name: getAbsolutePath('storybook-react-rsbuild'),
19
+ options: {},
20
+ },
21
+ addons: [
22
+ {
23
+ name: getAbsolutePath('storybook-addon-rslib'),
24
+ options: {
25
+ rslib: {
26
+ include: ['**/stories/**'],
27
+ },
28
+ },
29
+ },
30
+ {
31
+ name: '@module-federation/storybook-addon/preset',
32
+ options: {
33
+ remotes: {
34
+ provider: '{{mfName}}@http://localhost:3001/mf-manifest.json',
35
+ },
36
+ },
37
+ },
38
+ ],
39
+ };
40
+
41
+ export default config;