79016b879f
## Summary This PR adds a new `worker` strategy to the `<Script />` component that automatically relocates and executes the script in a web worker. ```jsx <Script strategy="worker" ... /> ``` [Partytown](https://partytown.builder.io/) is used under the hood to provide this functionality. ## Behavior - This will land as an experimental feature and will only work behind an opt-in flag in `next.config.js`: ```js experimental: { nextScriptWorkers: true } ``` - This setup use a similar approach to how ESLint and Typescript is used in Next.js by showing an error to the user to install the dependency locally themselves if they've enabled the experimental `nextScriptWorkers` flag. <img width="1068" alt="Screen Shot 2022-03-03 at 2 33 13 PM" src="https://user-images.githubusercontent.com/12476932/156639227-42af5353-a2a6-4126-936e-269112809651.png"> - For Partytown to work, a number of static files must be served directly from the site (see [docs](https://partytown.builder.io/copy-library-files)). In this PR, these files are automatically copied to a `~partytown` directory in `.next/static` during `next build` and `next dev` if the `nextScriptWorkers` flag is set to true. ## Checklist - [X] Implements an existing feature request or RFC. Make sure the feature request has been accepted for implementation before opening a PR. - [X] Related issues linked using `fixes #number` - [X] Integration tests added - [X] Documentation added - [ ] Telemetry added. In case of a feature if it's used or not. This PR fixes #31517.
34 lines
1 KiB
Text
34 lines
1 KiB
Text
node_modules
|
|
**/.next/**
|
|
**/_next/**
|
|
**/dist/**
|
|
e2e-tests/**
|
|
examples/with-eslint/**
|
|
examples/with-typescript-eslint-jest/**
|
|
examples/with-kea/**
|
|
examples/with-custom-babel-config/**
|
|
examples/with-flow/**
|
|
examples/with-jest/**
|
|
examples/with-mobx-state-tree/**
|
|
examples/with-mobx/**
|
|
packages/next/bundles/webpack/packages/*.runtime.js
|
|
packages/next/bundles/webpack/packages/lazy-compilation-*.js
|
|
packages/next/compiled/**/*
|
|
packages/react-refresh-utils/**/*.js
|
|
packages/react-dev-overlay/lib/**
|
|
**/__tmp__/**
|
|
.github/actions/next-stats-action/.work
|
|
packages/next-codemod/transforms/__testfixtures__/**/*
|
|
packages/next-codemod/transforms/__tests__/**/*
|
|
packages/next-codemod/**/*.js
|
|
packages/next-codemod/**/*.d.ts
|
|
packages/next-env/**/*.d.ts
|
|
packages/create-next-app/templates/**
|
|
test/integration/eslint/**
|
|
test/integration/script-loader/**/*
|
|
test/development/basic/legacy-decorators/**/*
|
|
test/production/emit-decorator-metadata/**/*.js
|
|
test-timings.json
|
|
packages/next-swc/crates/**
|
|
bench/nested-deps/pages/**
|
|
bench/nested-deps/components/**
|