Some checks failed
Test examples / Test Examples (20) (push) Has been cancelled
Test examples / Test Examples (22) (push) Has been cancelled
Lock Threads / action (push) Has been cancelled
Trigger Release / start (push) Has been cancelled
Stale issue handler / stale (push) Has been cancelled
Update Font Data / create-pull-request (push) Has been cancelled
build-and-deploy / deploy-target (push) Has been cancelled
build-and-deploy / build (push) Has been cancelled
build-and-deploy / stable - aarch64-unknown-linux-musl - node@16 (push) Has been cancelled
build-and-deploy / stable - x86_64-unknown-linux-musl - node@16 (push) Has been cancelled
build-and-deploy / stable - aarch64-unknown-linux-gnu - node@16 (push) Has been cancelled
build-and-deploy / stable - x86_64-unknown-linux-gnu - node@16 (push) Has been cancelled
build-and-deploy / stable - aarch64-pc-windows-msvc - node@16 (push) Has been cancelled
build-and-deploy / stable - x86_64-pc-windows-msvc - node@16 (push) Has been cancelled
build-and-deploy / stable - aarch64-apple-darwin - node@16 (push) Has been cancelled
build-and-deploy / stable - x86_64-apple-darwin - node@16 (push) Has been cancelled
build-and-deploy / build-wasm (nodejs) (push) Has been cancelled
build-and-deploy / build-wasm (web) (push) Has been cancelled
build-and-deploy / Deploy preview tarball (push) Has been cancelled
build-and-deploy / Potentially publish release (push) Has been cancelled
build-and-deploy / publish-turbopack-npm-packages (push) Has been cancelled
build-and-deploy / Deploy examples (push) Has been cancelled
build-and-deploy / thank you, build (push) Has been cancelled
build-and-deploy / Upload Turbopack Bytesize metrics to Datadog (push) Has been cancelled
Rspack Next.js development integration tests / Rspack integration tests (push) Has been cancelled
Rspack Next.js production integration tests / Rspack integration tests (push) Has been cancelled
Turbopack Next.js development integration tests / Next.js integration tests (push) Has been cancelled
Turbopack Next.js production integration tests / Next.js integration tests (push) Has been cancelled
Update Rspack test manifest / Update and upload Rspack development test manifest (push) Has been cancelled
Update Rspack test manifest / Update and upload Rspack production test manifest (push) Has been cancelled
Upload bundler test manifests to areweturboyet.com / Upload test results (push) Has been cancelled
Update React / create-pull-request (push) Has been cancelled
test-e2e-project-reset-cron / reset-test-project (push) Has been cancelled
Notify about the top 15 issues/PRs/feature requests (most reacted) in the last 90 days / run (push) Has been cancelled
74 lines
1.7 KiB
Markdown
74 lines
1.7 KiB
Markdown
# Next.js + Webpack Bundle Analyzer
|
|
|
|
Use `webpack-bundle-analyzer` in your Next.js project
|
|
|
|
## Installation
|
|
|
|
```
|
|
npm install @next/bundle-analyzer
|
|
```
|
|
|
|
or
|
|
|
|
```
|
|
yarn add @next/bundle-analyzer
|
|
```
|
|
|
|
Note: if installing as a `devDependency` make sure to wrap the require in a `process.env` check as `next.config.js` is loaded during `next start` as well.
|
|
|
|
### Usage with environment variables
|
|
|
|
Create a next.config.js (and make sure you have next-bundle-analyzer set up)
|
|
|
|
```js
|
|
const withBundleAnalyzer = require('@next/bundle-analyzer')({
|
|
enabled: process.env.ANALYZE === 'true',
|
|
})
|
|
module.exports = withBundleAnalyzer({})
|
|
```
|
|
|
|
Or configuration as a function:
|
|
|
|
```js
|
|
module.exports = (phase, defaultConfig) => {
|
|
return withBundleAnalyzer(defaultConfig)
|
|
}
|
|
```
|
|
|
|
Then you can run the command below:
|
|
|
|
```bash
|
|
# Analyze is done on build when env var is set
|
|
ANALYZE=true yarn build
|
|
```
|
|
|
|
When enabled three HTML files (client.html, edge.html and nodejs.html) will be outputted to `<distDir>/analyze/`. One will be for the nodejs server bundle, one for the edge server bundle, and one for the browser bundle.
|
|
|
|
#### Options
|
|
|
|
To disable automatically opening the report in your default browser, set `openAnalyzer` to false:
|
|
|
|
```js
|
|
const withBundleAnalyzer = require('@next/bundle-analyzer')({
|
|
enabled: process.env.ANALYZE === 'true',
|
|
openAnalyzer: false,
|
|
})
|
|
module.exports = withBundleAnalyzer({})
|
|
```
|
|
|
|
### Usage with next-compose-plugins
|
|
|
|
From version 2.0.0 of next-compose-plugins you need to call bundle-analyzer in this way to work
|
|
|
|
```js
|
|
const withPlugins = require('next-compose-plugins')
|
|
const withBundleAnalyzer = require('@next/bundle-analyzer')({
|
|
enabled: process.env.ANALYZE === 'true',
|
|
})
|
|
|
|
module.exports = withPlugins([
|
|
[withBundleAnalyzer],
|
|
// your other plugins here
|
|
])
|
|
```
|