# 预设
## 共享依赖
默认情况下,某些 Next.js 内部结构会自动共享以优化你的应用程序。
请务必注意,手动共享这些内部结构可能会导致错误,因为它们已经为你处理了。
- `next/dynamic`
- `next/head`
- `next/link`
- `next/router`
- `next/script`
- `react`
- `react/`
- `react-dom`
- `react-dom/`
- `styled-jsx`
- `styled-jsx/style`
点击展开
`DEFAULT_SHARE_SCOPE`
:
```ts
export const DEFAULT_SHARE_SCOPE: SharedObject = {
'next/dynamic': {
requiredVersion: undefined,
singleton: true,
import: undefined,
},
'next/head': {
requiredVersion: undefined,
singleton: true,
import: undefined,
},
'next/link': {
requiredVersion: undefined,
singleton: true,
import: undefined,
},
'next/router': {
requiredVersion: false,
singleton: true,
import: undefined,
},
'next/image': {
requiredVersion: undefined,
singleton: true,
import: undefined,
},
'next/script': {
requiredVersion: undefined,
singleton: true,
import: undefined,
},
react: {
singleton: true,
requiredVersion: false,
import: false,
},
'react/': {
singleton: true,
requiredVersion: false,
import: false,
},
'react-dom/': {
singleton: true,
requiredVersion: false,
import: false,
},
'react-dom': {
singleton: true,
requiredVersion: false,
import: false,
},
'react/jsx-dev-runtime': {
singleton: true,
requiredVersion: false,
},
'react/jsx-runtime': {
singleton: true,
requiredVersion: false,
},
'styled-jsx': {
singleton: true,
import: undefined,
version: require('styled-jsx/package.json').version,
requiredVersion: '^' + require('styled-jsx/package.json').version,
},
'styled-jsx/style': {
singleton: true,
import: false,
version: require('styled-jsx/package.json').version,
requiredVersion: '^' + require('styled-jsx/package.json').version,
},
'styled-jsx/css': {
singleton: true,
import: undefined,
version: require('styled-jsx/package.json').version,
requiredVersion: '^' + require('styled-jsx/package.json').version,
},
};
```
## 导出页面
你可以通过插件自动公开所有页面
```javascript
new NextFederationPlugin({
name: 'remoteApp',
filename: '',
remotes: {},
exposes: {},
shared: {},
extraOptions: {
exposePages: true
},
});
```
这将使页面可以导入,例如:
- `import Page from 'remoteApp/pages/index'`
- `import Page from 'remoteApp/pages/shop/product'`
## 构建配置 Options
### Public Path
publicPath 设置为 "auto"
`config.output.publicPath: "auto"`
### Target
Webpack output target is set to `async-node` from `node`
`config.target = "async-node"`