{"_id":"@einari/vite-plugin-federation","_rev":"3-73569fb9a8b28e65a1fd7fbd4707a994","name":"@einari/vite-plugin-federation","dist-tags":{"latest":"1.0.3"},"versions":{"1.0.0":{"name":"@einari/vite-plugin-federation","version":"1.0.0","keywords":["vite","plugins"],"author":{"name":"@originjs"},"license":"MulanPSL-2.0","_id":"@einari/vite-plugin-federation@1.0.0","maintainers":[{"name":"einari","email":"einari@me.com"}],"homepage":"https://github.com/originjs/vite-plugin-federation#readme","bugs":{"url":"https://github.com/originjs/vite-plugin-federation/issues"},"dist":{"shasum":"7216f06d4cd0c97b1839d6eccd8785366b48e24b","tarball":"https://registry.npmjs.org/@einari/vite-plugin-federation/-/vite-plugin-federation-1.0.0.tgz","fileCount":10,"integrity":"sha512-rum/Rwo3Udcb+BopynZhJsYeHjxcIxQmXVqy1EzvkpXsht1IzXyjiSVx6mrunwiDSnRF2HTCejiOmdJR2UkTUQ==","signatures":[{"sig":"MEUCIQCuZt/RL6j8i6GRkAs/PsEsTCvc6I8KPftXOhGz9yWANgIgMir2+M0y31CuXJF9Gu9W/G8+PCXkfsXELVyQ/ffWM84=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":170913},"main":"./dist/index.js","_from":"file:einari-vite-plugin-federation-1.0.0.tgz","types":"./types/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=14.0.0","pnpm":">=7.0.1"},"exports":{".":{"types":"./types/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"vite build --watch","build":"vite build","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s --commit-path ."},"_npmUser":{"name":"einari","email":"einari@me.com"},"_resolved":"/private/var/folders/br/lpwtk0ws55g31t7ndmlk8n780000gn/T/6b840b3f836baf9db9fdd45fbea07544/einari-vite-plugin-federation-1.0.0.tgz","_integrity":"sha512-rum/Rwo3Udcb+BopynZhJsYeHjxcIxQmXVqy1EzvkpXsht1IzXyjiSVx6mrunwiDSnRF2HTCejiOmdJR2UkTUQ==","repository":{"url":"git+https://github.com/originjs/vite-plugin-federation.git","type":"git"},"_npmVersion":"10.8.2","description":"A Vite plugin which support Module Federation.","directories":{},"_nodeVersion":"20.17.0","dependencies":{"magic-string":"^0.27.0","estree-walker":"^3.0.2"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.0.5","typescript":"^4.9.4","@types/estree":"^0.0.50","@rollup/plugin-virtual":"^3.0.1","conventional-changelog-cli":"^4.1.0"},"_npmOperationalInternal":{"tmp":"tmp/vite-plugin-federation_1.0.0_1725283572739_0.3492068831351689","host":"s3://npm-registry-packages"}},"1.0.1":{"name":"@einari/vite-plugin-federation","version":"1.0.1","keywords":["vite","plugins"],"author":{"name":"@originjs"},"license":"MulanPSL-2.0","_id":"@einari/vite-plugin-federation@1.0.1","maintainers":[{"name":"einari","email":"einari@me.com"}],"homepage":"https://github.com/originjs/vite-plugin-federation#readme","bugs":{"url":"https://github.com/originjs/vite-plugin-federation/issues"},"dist":{"shasum":"f5bddf451faf2e92a9b7c178d66cf2468367c7a3","tarball":"https://registry.npmjs.org/@einari/vite-plugin-federation/-/vite-plugin-federation-1.0.1.tgz","fileCount":10,"integrity":"sha512-9QguPYQfdoeVhM2UIkMzMGtDGKqi3RpIUIJ35kLkEboHJtbiDoM9ZHDmmpn1/S4GJqEqECwv4wei8PS98RDA8g==","signatures":[{"sig":"MEYCIQD7ueH8ITPzoX+CUMW3wgtWmP6uiE5BuEs2ZQ4g+OErdQIhAMafT4+H5/VNYKpkYi4oBBUWcRkLpQwgv3PfQHmv/Aso","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":170913},"main":"./dist/index.js","_from":"file:einari-vite-plugin-federation-1.0.1.tgz","types":"./types/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=14.0.0","pnpm":">=7.0.1"},"exports":{".":{"types":"./types/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"vite build --watch","build":"vite build","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s --commit-path ."},"_npmUser":{"name":"einari","email":"einari@me.com"},"_resolved":"/private/var/folders/br/lpwtk0ws55g31t7ndmlk8n780000gn/T/1e9b1788534e9928b2cd7032bc78b742/einari-vite-plugin-federation-1.0.1.tgz","_integrity":"sha512-9QguPYQfdoeVhM2UIkMzMGtDGKqi3RpIUIJ35kLkEboHJtbiDoM9ZHDmmpn1/S4GJqEqECwv4wei8PS98RDA8g==","repository":{"url":"git+https://github.com/originjs/vite-plugin-federation.git","type":"git"},"_npmVersion":"10.8.2","description":"A Vite plugin which support Module Federation.","directories":{},"_nodeVersion":"20.17.0","dependencies":{"magic-string":"^0.27.0","estree-walker":"^3.0.2"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.0.5","typescript":"^4.9.4","@types/estree":"^0.0.50","@rollup/plugin-virtual":"^3.0.1","conventional-changelog-cli":"^4.1.0"},"_npmOperationalInternal":{"tmp":"tmp/vite-plugin-federation_1.0.1_1725284705524_0.019370577757618745","host":"s3://npm-registry-packages"}},"1.0.2":{"name":"@einari/vite-plugin-federation","version":"1.0.2","keywords":["vite","plugins"],"author":{"name":"@originjs"},"license":"MulanPSL-2.0","_id":"@einari/vite-plugin-federation@1.0.2","maintainers":[{"name":"einari","email":"einari@me.com"}],"homepage":"https://github.com/originjs/vite-plugin-federation#readme","bugs":{"url":"https://github.com/originjs/vite-plugin-federation/issues"},"dist":{"shasum":"100ff230782b007cc1cdf3c6453dba542980b9d3","tarball":"https://registry.npmjs.org/@einari/vite-plugin-federation/-/vite-plugin-federation-1.0.2.tgz","fileCount":10,"integrity":"sha512-428Fy2Q/n1N0+dkCTS3PNsSpsxqK5kPFffaeyAmL8ao9mksM2n2dhsqBfJKi7Ldq844QhUE1lqjUJi090IPB0A==","signatures":[{"sig":"MEYCIQDcKvp1DQfh0jWTOb1aMse+Q2CuY1CAQPOBtXIa8jnRaAIhALndYwIo2Oc8AnLcGxKutdcXiN8b0AwmMKeDFHEhkCty","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":170913},"main":"./dist/index.js","_from":"file:einari-vite-plugin-federation-1.0.2.tgz","types":"./types/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=14.0.0","pnpm":">=7.0.1"},"exports":{".":{"types":"./types/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"vite build --watch","build":"vite build","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s --commit-path ."},"_npmUser":{"name":"einari","email":"einari@me.com"},"_resolved":"/private/var/folders/br/lpwtk0ws55g31t7ndmlk8n780000gn/T/320726ab0d7223ac3cb48f1208a45b03/einari-vite-plugin-federation-1.0.2.tgz","_integrity":"sha512-428Fy2Q/n1N0+dkCTS3PNsSpsxqK5kPFffaeyAmL8ao9mksM2n2dhsqBfJKi7Ldq844QhUE1lqjUJi090IPB0A==","repository":{"url":"git+https://github.com/originjs/vite-plugin-federation.git","type":"git"},"_npmVersion":"10.8.2","description":"A Vite plugin which support Module Federation.","directories":{},"_nodeVersion":"20.17.0","dependencies":{"magic-string":"^0.27.0","estree-walker":"^3.0.2"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.0.5","typescript":"^4.9.4","@types/estree":"^0.0.50","@rollup/plugin-virtual":"^3.0.1","conventional-changelog-cli":"^4.1.0"},"_npmOperationalInternal":{"tmp":"tmp/vite-plugin-federation_1.0.2_1725356409628_0.3361864764835707","host":"s3://npm-registry-packages"}},"1.0.3":{"name":"@einari/vite-plugin-federation","version":"1.0.3","description":"A Vite plugin which support Module Federation.","main":"./dist/index.js","module":"./dist/index.mjs","types":"./types/index.d.ts","exports":{".":{"types":"./types/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"engines":{"node":">=14.0.0","pnpm":">=7.0.1"},"repository":{"type":"git","url":"git+https://github.com/originjs/vite-plugin-federation.git"},"keywords":["vite","plugins"],"author":{"name":"@originjs"},"license":"MulanPSL-2.0","bugs":{"url":"https://github.com/originjs/vite-plugin-federation/issues"},"homepage":"https://github.com/originjs/vite-plugin-federation#readme","dependencies":{"estree-walker":"^3.0.2","magic-string":"^0.27.0"},"devDependencies":{"@rollup/plugin-virtual":"^3.0.1","@types/estree":"^0.0.50","conventional-changelog-cli":"^4.1.0","typescript":"^4.9.4","vite":"^4.0.5"},"scripts":{"build":"vite build","dev":"vite build --watch","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s --commit-path ."},"_id":"@einari/vite-plugin-federation@1.0.3","_integrity":"sha512-txn23Y88V9yqtHLtCLdgk0+lYeqy+U2hw6WserjrE2HUDiQRiosmeK6RtX7jFK2pnc5Kl+dlHg6bgZpyAxnwGg==","_resolved":"/private/var/folders/br/lpwtk0ws55g31t7ndmlk8n780000gn/T/ebc525c077be59e6838966707e5715bc/einari-vite-plugin-federation-1.0.3.tgz","_from":"file:einari-vite-plugin-federation-1.0.3.tgz","_nodeVersion":"20.17.0","_npmVersion":"10.8.2","dist":{"integrity":"sha512-txn23Y88V9yqtHLtCLdgk0+lYeqy+U2hw6WserjrE2HUDiQRiosmeK6RtX7jFK2pnc5Kl+dlHg6bgZpyAxnwGg==","shasum":"3147ed93f27db1923132ff1747d5eb3824c53fcb","tarball":"https://registry.npmjs.org/@einari/vite-plugin-federation/-/vite-plugin-federation-1.0.3.tgz","fileCount":10,"unpackedSize":170905,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDGLDUkrrMTduU7gVpMtOxm5O7eC7llNBTHosrHsDa0bQIhAOjRCirBZzrnykXThdT0eCvMBn5k2DtXRbPYeXdgF/Bu"}]},"_npmUser":{"name":"einari","email":"einari@me.com"},"directories":{},"maintainers":[{"name":"einari","email":"einari@me.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vite-plugin-federation_1.0.3_1725356775808_0.7291537611397674"},"_hasShrinkwrap":false}},"time":{"created":"2024-09-02T13:26:12.642Z","modified":"2024-09-03T09:46:16.139Z","1.0.0":"2024-09-02T13:26:12.930Z","1.0.1":"2024-09-02T13:45:05.742Z","1.0.2":"2024-09-03T09:40:09.788Z","1.0.3":"2024-09-03T09:46:15.967Z"},"bugs":{"url":"https://github.com/originjs/vite-plugin-federation/issues"},"author":{"name":"@originjs"},"license":"MulanPSL-2.0","homepage":"https://github.com/originjs/vite-plugin-federation#readme","keywords":["vite","plugins"],"repository":{"type":"git","url":"git+https://github.com/originjs/vite-plugin-federation.git"},"description":"A Vite plugin which support Module Federation.","maintainers":[{"name":"einari","email":"einari@me.com"}],"readme":"# vite-plugin-federation\n\nA Vite/Rollup plugin which support Module Federation.\nInspired by Webpack and compatible with [Webpack Module Federation](https://webpack.js.org/concepts/module-federation/).\n\n## Install\n\n```\nnpm install @originjs/vite-plugin-federation --save-dev\n```\n\nor\n\n```\nyarn add @originjs/vite-plugin-federation --dev\n```\n\n## Usage\nUsing the `Module Federation` usually requires more than 2 projects, one as the `host side` and one as the `remote side`.\n#### Step 1: Configure the remote side.\n- for a vite project, modify `vite.config.js`:\n\n```js\n// vite.config.js\nimport federation from \"@originjs/vite-plugin-federation\";\nexport default {\n    plugins: [\n        federation({\n            name: 'remote-app',\n            filename: 'remoteEntry.js',\n            // Modules to expose\n            exposes: {\n                './Button': './src/Button.vue',\n            },\n            shared: ['vue']\n        })\n    ]\n}\n```\n\n- for a rollup project, modify `rollup.config.js`:\n\n```js\n// rollup.config.js\nimport federation from '@originjs/vite-plugin-federation'\nexport default {\n    input: 'src/index.js',\n    plugins: [\n        federation({\n            name: 'remote-app',\n            filename: 'remoteEntry.js',\n            // Modules to expose\n            exposes: {\n                './Button': './src/button'.\n            },\n            shared: ['vue']\n        })\n    ]\n}\n```\n\n#### Step 2: Configure the host side\n\n- for a vite project, modify `vite.config.js`:\n\n```js\n// vite.config.js\nimport federation from \"@originjs/vite-plugin-federation\";\nexport default {\n    plugins: [\n        federation({\n            name: 'host-app',\n            remotes: {\n                remote_app: \"http://localhost:5001/assets/remoteEntry.js\",\n            },\n            shared: ['vue']\n        })\n    ]\n}\n```\n\n- for a rollup project, modify `rollup.config.js`:\n\n```js\n// rollup.config.js\nimport federation from '@originjs/vite-plugin-federation'\nexport default {\n    input: 'src/index.js',\n    plugins: [\n        federation({\n            name: 'host-app',\n            remotes: {\n                remote_app: \"http://localhost:5001/remoteEntry.js\",\n            },\n            shared: ['vue']\n        })\n    ]\n}\n```\n\n#### Step 3: Using remote modules on the host side\n\nUsing a Vue project as an example\n\n```js\nimport { createApp, defineAsyncComponent } from \"vue\";\nconst app = createApp(Layout);\n...\nconst RemoteButton = defineAsyncComponent(() => import(\"remote_app/Button\"));\napp.component(\"RemoteButton\", RemoteButton);\napp.mount(\"#root\");\n```\nUsing remote components in templates\n\n```vue\n<template>\n    <div>\n        <RemoteButton />\n    </div>\n</template>\n```\n\n## Example projects\n\n| Examples                                                                                                                                | Host                                  | Remote                              |\n| --------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------- | ----------------------------------- |\n| [basic-host-remote](https://github.com/originjs/vite-plugin-federation/tree/main/packages/examples/basic-host-remote)                   | `rollup`+`esm`                        | `rollup`+`esm`                      |\n| [react-in-vue](https://github.com/originjs/vite-plugin-federation/tree/main/packages/examples/react-in-vue)                             | `vite`+`esm`                          | `vite`+`esm`                        |\n| [simple-react-esm](https://github.com/originjs/vite-plugin-federation/tree/main/packages/examples/simple-react-esm)                     | `rollup`+`esm`                        | `rollup`+`esm`                      |\n| [simple-react-systemjs](https://github.com/originjs/vite-plugin-federation/tree/main/packages/examples/simple-react-systemjs)           | `rollup`+`systemjs`                   | `rollup`+`systemjs`                 |\n| [simple-react-webpack](https://github.com/originjs/vite-plugin-federation/tree/main/packages/examples/simple-react-webpack)             | `rollup`+`systemjs`                   | `webpack`+`systemjs`                |\n| [vue2-demo](https://github.com/originjs/vite-plugin-federation/tree/main/packages/examples/vue2-demo)                                   | `vite`+`esm`                          | `vite`+`esm`                        |\n| [vue3-advanced-demo](https://github.com/originjs/vite-plugin-federation/tree/main/packages/examples/vue3-advanced-demo)                 | `vite`+`esm` <br/>`vue-router`/`pinia` | `vite`+`esm`<br/>`vue-router`/`pinia` |\n| [vue3-demo-esm](https://github.com/originjs/vite-plugin-federation/tree/main/packages/examples/vue3-demo-esm)                           | `vite`+`esm`                          | `vite`+`esm`                        |\n| [vue3-demo-systemjs](https://github.com/originjs/vite-plugin-federation/tree/main/packages/examples/vue3-demo-systemjs)                 | `vite`+`systemjs`                     | `vite`+`systemjs`                   |\n| [vue3-demo-webpack-esm-esm](https://github.com/originjs/vite-plugin-federation/tree/main/packages/examples/vue3-demo-webpack-esm-esm)   | `vite/webpack`+`esm`                  | `vite/webpack`+`esm`                |\n| [vue3-demo-webpack-esm-var](https://github.com/originjs/vite-plugin-federation/tree/main/packages/examples/vue3-demo-webpack-esm-var)   | `vite`+`esm`                          | `webpack`+`var`                     |\n| [vue3-demo-webpack-systemjs](https://github.com/originjs/vite-plugin-federation/tree/main/packages/examples/vue3-demo-webpack-systemjs) | `vite`+`systemjs`                     | `webpack`+`systemjs`                |","readmeFilename":"README.md"}