Skip to content

Commit

Permalink
docs: add frameworks
Browse files Browse the repository at this point in the history
  • Loading branch information
ScriptedAlchemy committed Apr 10, 2024
1 parent 4361caf commit ef36906
Showing 1 changed file with 83 additions and 91 deletions.
174 changes: 83 additions & 91 deletions apps/website-new/docs/en/guide/framework/nextjs.mdx
Original file line number Diff line number Diff line change
@@ -1,98 +1,20 @@
import { Badge } from '@theme';

<div style={{float:"right"}}><Badge text="App Router Not Supported" type="danger" /></div>

# Next.js

This plugin enables Module Federation on Next.js

## Supports

- next ^14 || ^13 || ^12
- SSR included!
- Server-Side Rendering
- Pages router

I highly recommend referencing this application which takes advantage of the best capabilities:
https://github.com/module-federation/module-federation-examples

## This project supports federated SSR

## Whats shared by default?

Under the hood we share some next internals automatically
You do not need to share these packages, sharing next internals yourself will cause errors.

<details>
<summary> See DEFAULT_SHARE_SCOPE:</summary>

```ts
export const DEFAULT_SHARE_SCOPE: SharedObject = {
'next/dynamic': {
eager: false,
requiredVersion: false,
singleton: true,
import: undefined,
},
'next/head': {
eager: false,
requiredVersion: false,
singleton: true,
import: undefined,
},
'next/link': {
eager: true,
requiredVersion: false,
singleton: true,
import: undefined,
},
'next/router': {
requiredVersion: false,
singleton: true,
import: false,
eager: false,
},
'next/script': {
requiredVersion: false,
singleton: true,
import: undefined,
eager: false,
},
react: {
singleton: true,
requiredVersion: false,
eager: false,
import: false,
},
'react-dom': {
singleton: true,
requiredVersion: false,
eager: false,
import: false,
},
'react/jsx-dev-runtime': {
singleton: true,
requiredVersion: false,
import: undefined,
eager: false,
},
'react/jsx-runtime': {
singleton: true,
requiredVersion: false,
eager: false,
import: false,
},
'styled-jsx': {
requiredVersion: false,
singleton: true,
import: undefined,
eager: false,
},
'styled-jsx/style': {
requiredVersion: false,
singleton: true,
import: undefined,
eager: false,
},
};
```

</details>

## Requirement

I set `process.env.NEXT_PRIVATE_LOCAL_WEBPACK = 'true'` inside this plugin, but its best if its set in env or command line export.
Expand Down Expand Up @@ -314,13 +236,83 @@ class MyDocument extends Document {
Hot reloading Express.js required additional steps: https://github.com/module-federation/universe/blob/main/packages/node/README.md
## Contact
## Whats shared by default?
If you have any questions or need to report a bug
Under the hood we share some next internals automatically
You do not need to share these packages, sharing next internals yourself will cause errors.
<a href="https://twitter.com/ScriptedAlchemy">
{' '}
Reach me on Twitter @ScriptedAlchemy
</a>
<details>
<summary> Click to view `DEFAULT_SHARE_SCOPE`:</summary>
Or join this discussion thread: https://github.com/module-federation/module-federation-examples/discussions/978
```ts
export const DEFAULT_SHARE_SCOPE: SharedObject = {
'next/dynamic': {
eager: false,
requiredVersion: false,
singleton: true,
import: undefined,
},
'next/head': {
eager: false,
requiredVersion: false,
singleton: true,
import: undefined,
},
'next/link': {
eager: true,
requiredVersion: false,
singleton: true,
import: undefined,
},
'next/router': {
requiredVersion: false,
singleton: true,
import: false,
eager: false,
},
'next/script': {
requiredVersion: false,
singleton: true,
import: undefined,
eager: false,
},
react: {
singleton: true,
requiredVersion: false,
eager: false,
import: false,
},
'react-dom': {
singleton: true,
requiredVersion: false,
eager: false,
import: false,
},
'react/jsx-dev-runtime': {
singleton: true,
requiredVersion: false,
import: undefined,
eager: false,
},
'react/jsx-runtime': {
singleton: true,
requiredVersion: false,
eager: false,
import: false,
},
'styled-jsx': {
requiredVersion: false,
singleton: true,
import: undefined,
eager: false,
},
'styled-jsx/style': {
requiredVersion: false,
singleton: true,
import: undefined,
eager: false,
},
};
```
</details>

0 comments on commit ef36906

Please sign in to comment.