-
Notifications
You must be signed in to change notification settings - Fork 27.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
the way towards webpack 5 typings #29105
Conversation
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
remove old terser-webpack-plugin from webpack bundles add support to use webpack 5 typings manually remove bundles/package.json as it's no longer needed
00e6c36
to
b8e933b
Compare
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
|
||
const isWebpack5 = parseInt(webpack.version) === 5 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This test case way never executed before since this was always false.
@@ -33,6 +33,30 @@ const hookPropertyMap = new Map( | |||
'webpack/lib/node/NodeTargetPlugin.js', | |||
'next/dist/compiled/webpack/NodeTargetPlugin', | |||
], | |||
[ | |||
'webpack/lib/node/NodeTemplatePlugin', |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nobody noticed that these were missing because when running next.js test cases there was a webpack
package installed. That's no longer the case (only webpack4
and webpack5
) so that was discovered.
Used by worker-loader
and @zeit/next-css
}, | ||
target: 'es5', | ||
}) | ||
.target('compiled/sass-loader') | ||
} | ||
// eslint-disable-next-line camelcase | ||
externals['schema-utils'] = 'next/dist/compiled/schema-utils' | ||
export async function ncc_schema_utils(task, opts) { | ||
externals['schema-utils'] = 'MISSING_VERSION schema-utils version not specified' |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Forcing to fail if that is no overriden to force choosing a version
@@ -11,7 +11,7 @@ import { StackFrame } from 'stacktrace-parser' | |||
import url from 'url' | |||
// @ts-ignore | |||
// eslint-disable-next-line import/no-extraneous-dependencies | |||
import webpack from 'webpack' | |||
import webpack from 'webpack4' |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We can now incrementally move all these webpack4 imports to webpack5. Step by step.
packages/next/types/webpack.d.ts
Outdated
import webpack4 from 'webpack4' | ||
import webpack5 from 'webpack5' | ||
export type Compiler = webpack4.Compiler | webpack5.Compiler | ||
export type Stats = webpack4.Stats | webpack5.Stats |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I started a combined webpack type here, which can be used to type things independent of webpack version
This is now visible because `webpack` no longer exists as package in next.js
471712f
to
7857e86
Compare
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
a87e719
to
ea0b3aa
Compare
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
that's needed to use require-hook correctly
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
Failing test suitesCommit: f4683bb test/development/acceptance/ReactRefresh.test.ts
Expand output● ReactRefresh › can edit a component without losing state
● ReactRefresh › cyclic dependencies
test/integration/app-document-remove-hmr/test/index.test.js
Expand output● _app removal HMR › should HMR when _document is removed
|
Stats from current PRDefault Build (Decrease detected ✓)General Overall decrease ✓
Page Load Tests Overall decrease
|
vercel/next.js canary | vercel/next.js refactor/types | Change | |
---|---|---|---|
/ failed reqs | 0 | 0 | ✓ |
/ total time (seconds) | 3.289 | 3.368 | |
/ avg req/sec | 760.1 | 742.28 | |
/error-in-render failed reqs | 0 | 0 | ✓ |
/error-in-render total time (seconds) | 1.895 | 1.941 | |
/error-in-render avg req/sec | 1319.04 | 1287.95 |
Client Bundles (main, webpack, commons)
vercel/next.js canary | vercel/next.js refactor/types | Change | |
---|---|---|---|
779.HASH.js gzip | 179 B | 179 B | ✓ |
framework-HASH.js gzip | 42.2 kB | 42.2 kB | ✓ |
main-HASH.js gzip | 26.8 kB | 26.8 kB | ✓ |
webpack-HASH.js gzip | 1.45 kB | 1.45 kB | ✓ |
Overall change | 70.6 kB | 70.6 kB | ✓ |
Legacy Client Bundles (polyfills)
vercel/next.js canary | vercel/next.js refactor/types | Change | |
---|---|---|---|
polyfills-a4..dd70.js gzip | 31 kB | 31 kB | ✓ |
Overall change | 31 kB | 31 kB | ✓ |
Client Pages
vercel/next.js canary | vercel/next.js refactor/types | Change | |
---|---|---|---|
_app-HASH.js gzip | 977 B | 977 B | ✓ |
_error-HASH.js gzip | 194 B | 194 B | ✓ |
amp-HASH.js gzip | 311 B | 311 B | ✓ |
css-HASH.js gzip | 328 B | 328 B | ✓ |
dynamic-HASH.js gzip | 2.67 kB | 2.67 kB | ✓ |
head-HASH.js gzip | 351 B | 351 B | ✓ |
hooks-HASH.js gzip | 918 B | 918 B | ✓ |
image-HASH.js gzip | 4.14 kB | 4.14 kB | ✓ |
index-HASH.js gzip | 260 B | 260 B | ✓ |
link-HASH.js gzip | 1.66 kB | 1.66 kB | ✓ |
routerDirect..HASH.js gzip | 320 B | 320 B | ✓ |
script-HASH.js gzip | 386 B | 386 B | ✓ |
withRouter-HASH.js gzip | 319 B | 319 B | ✓ |
bb14e60e810b..30f.css gzip | 125 B | 125 B | ✓ |
Overall change | 13 kB | 13 kB | ✓ |
Client Build Manifests
vercel/next.js canary | vercel/next.js refactor/types | Change | |
---|---|---|---|
_buildManifest.js gzip | 493 B | 493 B | ✓ |
Overall change | 493 B | 493 B | ✓ |
Rendered Page Sizes
vercel/next.js canary | vercel/next.js refactor/types | Change | |
---|---|---|---|
index.html gzip | 539 B | 539 B | ✓ |
link.html gzip | 550 B | 550 B | ✓ |
withRouter.html gzip | 533 B | 533 B | ✓ |
Overall change | 1.62 kB | 1.62 kB | ✓ |
Default Build with SWC (Decrease detected ✓)
General Overall decrease ✓
vercel/next.js canary | vercel/next.js refactor/types | Change | |
---|---|---|---|
buildDuration | 7.9s | 7.9s | -33ms |
buildDurationCached | 3.8s | 3.9s | |
nodeModulesSize | 182 MB | 181 MB | -882 kB |
Page Load Tests Overall decrease ⚠️
vercel/next.js canary | vercel/next.js refactor/types | Change | |
---|---|---|---|
/ failed reqs | 0 | 0 | ✓ |
/ total time (seconds) | 3.299 | 3.436 | |
/ avg req/sec | 757.79 | 727.52 | |
/error-in-render failed reqs | 0 | 0 | ✓ |
/error-in-render total time (seconds) | 1.836 | 1.863 | |
/error-in-render avg req/sec | 1361.85 | 1341.94 |
Client Bundles (main, webpack, commons)
vercel/next.js canary | vercel/next.js refactor/types | Change | |
---|---|---|---|
675-HASH.js gzip | 13.8 kB | 13.8 kB | ✓ |
770.HASH.js gzip | 178 B | 178 B | ✓ |
framework-HASH.js gzip | 50.7 kB | 50.7 kB | ✓ |
main-HASH.js gzip | 34.7 kB | 34.7 kB | ✓ |
webpack-HASH.js gzip | 1.65 kB | 1.65 kB | ✓ |
Overall change | 101 kB | 101 kB | ✓ |
Legacy Client Bundles (polyfills)
vercel/next.js canary | vercel/next.js refactor/types | Change | |
---|---|---|---|
polyfills-a4..dd70.js gzip | 31 kB | 31 kB | ✓ |
Overall change | 31 kB | 31 kB | ✓ |
Client Pages
vercel/next.js canary | vercel/next.js refactor/types | Change | |
---|---|---|---|
_app-HASH.js gzip | 1.32 kB | 1.32 kB | ✓ |
_error-HASH.js gzip | 180 B | 180 B | ✓ |
amp-HASH.js gzip | 315 B | 315 B | ✓ |
css-HASH.js gzip | 331 B | 331 B | ✓ |
dynamic-HASH.js gzip | 2.8 kB | 2.8 kB | ✓ |
head-HASH.js gzip | 356 B | 356 B | ✓ |
hooks-HASH.js gzip | 637 B | 637 B | ✓ |
image-HASH.js gzip | 573 B | 573 B | ✓ |
index-HASH.js gzip | 262 B | 262 B | ✓ |
link-HASH.js gzip | 2.2 kB | 2.2 kB | ✓ |
routerDirect..HASH.js gzip | 326 B | 326 B | ✓ |
script-HASH.js gzip | 393 B | 393 B | ✓ |
withRouter-HASH.js gzip | 322 B | 322 B | ✓ |
bb14e60e810b..30f.css gzip | 125 B | 125 B | ✓ |
Overall change | 10.1 kB | 10.1 kB | ✓ |
Client Build Manifests
vercel/next.js canary | vercel/next.js refactor/types | Change | |
---|---|---|---|
_buildManifest.js gzip | 511 B | 511 B | ✓ |
Overall change | 511 B | 511 B | ✓ |
Rendered Page Sizes
vercel/next.js canary | vercel/next.js refactor/types | Change | |
---|---|---|---|
index.html gzip | 538 B | 538 B | ✓ |
link.html gzip | 550 B | 550 B | ✓ |
withRouter.html gzip | 531 B | 531 B | ✓ |
Overall change | 1.62 kB | 1.62 kB | ✓ |
This reverts commit 93303bd.
You can now use
import("webpack5")
to access the webpack 5 typings (andimport("webpack4")
for webpack 4)