github vercel/next.js v12.0.0

3 years ago

Core Changes

  • Remove .next/traces directory as it's not used: #28728
  • Update css-loader runtime to use compiled files: #28735
  • Fix typings of dynamic suspense: #28740
  • Ensure build trace handles mixed modules: #28770
  • [ESLint Plugin] Updates no-document-import-in-page rule to use path separators: #28768
  • feat: Adding generic typing for previewData: #28668
  • Add RenderResult class: #28776
  • Reuse warning from postcss-loader: #28727
  • mini-css-extract-plugin should not bundle webpack code: #28822
  • update webpack to 5.52.0: #28771
  • Add tracing for css-loader: #28756
  • Simplify static + dynamic HTML generation: #28793
  • [ESLint] Support single-file linting in next lint (necessary for lint-staged): #28042
  • Webpack rule to block importing images into _document: #28475
  • Remove outdated webpack conformance experiment: #28846
  • Remove unused profiler: #28844
  • Remove unused dependencies: #28876
  • Update concurrent tests and enable experimental streaming: #28892
  • Fix/swc minify: #28898
  • Ensure timed out prefetches are cleaned up correctly: #28899
  • Simplify RenderResult: #28900
  • fix: should allow optional properties for images option: #28709
  • Adopt context based experimental styled-jsx version: #28646
  • Fix ensurePage race condition: #28939
  • Support node-sass@6: #28710
  • Update swc: #28946
  • Update swc in next-swc: #28970
  • Ensure cache-control is correct for notFound: true with revalidate: #28973
  • Update gSSP type to support props as a promise: #28999
  • Use Writable instead of Observable: #29007
  • Pass code as buffer to swc minify: #29009
  • Deprecate webpack 4 support: #28840
  • Make next-ssg optional: #28862
  • next/dynamic: Accept pagesDir: #29055
  • Update test set-up to leverage playwright when able to: #28634
  • Make traces in development reliable: #28990
  • Fix webpack version and safari test and update compiled: #29059
  • Throw error if res is accessed after gSSP returns: #29010
  • Fix/upload binary artifact: #29069
  • Add crossOrigin type to the NextConfig: #29033
  • reload the page to show 404 when receiving invalid event from on-demand-entries: #29074
  • Add stats config for SWC: #28883
  • Fix host segment replacing for custom routes: #29090
  • Add/styled jsx swc: #29005
  • Update styled-jsx: #29103
  • Remove inert font tag in font optimization: #28869
  • Remove log from failing to parse source map: #29118
  • Development tracing improvements: #29076
  • Update trace ignores for next import: #29119
  • Fix partial one off global selectors: #29128
  • Update next-swc binaries: #29132
  • Fix transform of ` in styled-jsx: #29136
  • Update next-swc binaries: #29140
  • Ensure Next.js dist files are commonjs compatible with swcLoader enabled: #29138
  • next-ssg: Don't inject __N_SSP for files without server props.: #29141
  • Build next-swc binaries: #29144
  • Add crawler blocking for fallback: true: #29121
  • upgrade to typescript 4.4.3: #29112
  • Fix native unit tests: #29146
  • Ensure traces are flushed in development when there is an error: #29149
  • Add name to invalidated span: #29170
  • suggest incremental typescript for typescript >= 4.4.2: #29169
  • make code consistent with babel externals: #28867
  • add support for new URL(): #28940
  • Fix bug where returning { notFound: true } from GSP broke next export: #24481
  • Fix #11107 - don't prefetch preloaded modules: #22818
  • Fix array query value has matching: #29216
  • Remove useless getComputedStyle call.: #27969
  • Preserve next-env.d.ts line ending: #28100
  • fix compilation span relationship: #29174
  • Add spans for hot-reloader start: #29251
  • Fix dynamic style issue: #29163
  • Ensure trailingSlash is correct for index with query: #29217
  • Migrate prerender tests to new set-up: #29245
  • Fix resolving href with query and matching as: #29246
  • upgrade webpack to 5.53.0: #29168
  • Fix basePath: false not being honored for client-side redirect: #29235
  • Fix default static /500 with i18n: #29250
  • Remove docker usage for running development tests: #29264
  • Remove collect-dependencies span as it balloons trace size: #29266
  • Initial work for using webpack 5 typings: #29105
  • Rename experimental tracing to outputFileTracing: #29267
  • Add internal mode for debugging Next.js core webpack: #29254
  • Fix invalid project dir casing breaking Next.js on Windows: #29205
  • Fix add-entry span duration: #29288
  • Update to latest @vercel/nft and use async fs methods: #29341
  • feat: allow setting custom tsconfig file: #28104
  • Ensure static image works correctly with basePath: #29307
  • Use webpack resolve with nft: #29342
  • Experimental: hook version of reportWebVitals: #28769
  • enable unsafeCache for better incremental build performance: #29175
  • upgrade webpack and enable experiments.cacheUnaffected: #29369
  • Fix onLoadingComplete() callback when image src is Data URL: #29367
  • Additional bench tracing improvements: #29325
  • Remove inline-source-map for Windows: #28893
  • Ensure blurDataURL is correct in dev with basePath: #29436
  • Update swc : #29460
  • Build next-swc binaries: #29465
  • Fix SWC unit test: #29466
  • Ensure initial imports are included in traces correctly: #29437
  • Rename onReadyToStream to onCompleteShell: #29442
  • Update css parser: #29484
  • update webpack: #29469
  • Parallelize requirePage when loading components: #29494
  • Invalidate webpack cache when swc options are enabled/disabled: #29497
  • Update output tracing resolving: #29473
  • Remove error that is too strict in next/dynamic swc transform: #29511
  • make client and server independent for on-demand-entries: #29518
  • Update resolve options for nft: #29524
  • Fix root global jsx style: #29505
  • Fix custom app file regex: #29525
  • Upgrade swc deps: #29531
  • Ensure all package.json files are traced correctly: #29539
  • Add page mapping for Server Components: #29508
  • Fix ie11 from untranspiled vitals: #29532
  • Update version @babel/runtime: #29458
  • upgrade webpack: #29549
  • Include param vars in nearest scope bindings: #29536
  • Update swc_css_parser: #29572
  • Upgrade swc deps: #29620
  • fixes #29553: #29611
  • Add trace file for "next dev": #29633
  • Update to latest version of node-file-trace: #29617
  • Update swc crates: #29643
  • Fix missing trace items and migrate required files test: #29649
  • Create TelemetryPlugin for collecting feature usage metrics: #29145
  • Fix grammar in conflicting paths error: #29658
  • update webpack: #29644
  • Bump squoosh to the latest version: #29506
  • Remove webpack 4 support: #29660
  • Ensure conditional resolve alias does not affect server: #29673
  • Chore/update swc: #29675
  • Remove isWebpack5 checks: #29677
  • chore: Update swc: #29689
  • fix: Prevent image redirection when trailingSlash is set: #29640
  • fix(styled-jsx): Use correct SyntaxContext for identifiers: #29705
  • Use correct arg for require.resolveWeak: #29719
  • update webpack: #29708
  • update webpack: #29738
  • serverOnlyChanges should be determined when both compilers are done: #29757
  • Hmr DX improvements: #29753
  • Add trace span for module readFile: #29759
  • Fix bug with getServerSideProps when swcLoader is enabled: #29760
  • feat(build/swc): Add debug utilities: #29730
  • Fix bugs of styled-jsx and swc: #29774
  • Fix swc tests: #29776
  • Fix styled-jsx: Don't drop extra selectors: #29791
  • show partial compiled message and correct module count: #29795
  • avoid using absolute paths in import/require: #29797
  • Update swc: #29798
  • Pass sourcemap when swcMinify is enabled: #29794
  • hide build error when returning to old build: #29813
  • only schedule pages for disposing and dispose on next compile: #29816
  • reduce default maxInactiveAge to 15s: #29817
  • add summary logging option: #29814
  • handle new hmr connection as heartbeat signal: #29818
  • allow to reload disposed client pages: #29815
  • Collect feature usage for optimizeCss: #29828
  • Add support for AVIF to next/image: #29683
  • Update swc: #29843
  • Avoid TypeError when comparing path param: #29821
  • feat(jsconfig-paths-plugin): Resolve paths synchronously: #29467
  • Update swc: #29866
  • Update swc: #29881
  • Added more examples to Response Helpers page: #29462
  • update webpack: #29870
  • Add experimental option to enable fullySpecified: #29880
  • only listen to drain even once: #29885
  • Update swc & Improve CI time: #29884
  • Enable esmExternals by default: #29878
  • Refactor Document to prep for classic streaming: #29834
  • Update to latest @vercel/nft: #29902
  • Remove unused options from swc-loader: #29907
  • Update swc: #29913
  • upgrade strip-ansi in react-dev-overlay: #29906
  • Add revalidate to the GetStaticPropsResult: #29919
  • Migrate server-sent events HMR connection to WebSocket: #29903
  • Upate swc to allow line comments in css: #29943
  • fix Log Typo: #29937
  • Bump "engines" to node >= 12.22.0: #29949
  • Update webpack target to node12.22: #29953
  • Add ESLint docs URLs: #29645
  • Use import() to load next.config.js: #29935
  • Fix config import on Windows and disable test in failing envs: #29971
  • Update swc: #29969
  • Fix identifier handling ofstyled-jsx: #29986
  • Update swc to fix minifier: #29989
  • Remove obsolete prerender indicator code: #30004
  • Update swc: #30019
  • Update swc: #30029
  • Compile native-url and node-libs-browser: #30032
  • Update swc to fix regenerator issue: #30035
  • Update tracing to collect from reasons: #29975
  • Fix eslint loading on Windows: #30040
  • Fix next/image when parent is <p>: #30041
  • Fix trace when initial file is also child: #30048
  • Update react 18 streaming api: #30038
  • Update manifest to include notFound revalidate info: #30046
  • Sanitize the path to the user config before importing: #30003
  • Update swc: #30055
  • Update swc: #30057
  • Update swc: #30066
  • Prevent inherited styles on next/image wrapper or sizer: #30064
  • update webpack: #30073
  • Print error when images.loader is assigned but images.path is not: #30080
  • Update swc: #30086
  • Enable fast refresh transform when using SWC: #30106
  • Implement Middleware RFC: #30081
  • Enable shared worker pool by default: #30110
  • use xxhash64 by default: #30095
  • [ESLint] Adds temporary error message for ESLint v8: #30113
  • improve production error message printing: #30065
  • Simplify export statement: #30015
  • automatically enable managed paths for all node_modules: #30089
  • Skip minifying middleware: #30122
  • Fix creation of styled jsx ids: #30124
  • Update swc: #30127
  • avoid showing empty Import trace for requested module: #30130
  • fix pageKey and compiling output for on-demand-entries: #30116
  • add experimental.urlImports option: #30079
  • Update swc: #30141
  • Ensure we dont attempt minifying middleware-chunks: #30147
  • Update middleware chunk handling: #30151
  • Ensure error message prints next.config.mjs: #30152
  • Use default next.config.js if not found: #30155
  • Add warning when using middleware: #30160
  • test and fix error reporting for stack overflows and other fatal errors: #30169
  • [ESLint] Add add next/script support for no-unwanted-polyfillio rule: #28944
  • make static image import output path consistent with other media: #30168
  • De-dupe inflight getStaticProps requests: #30125
  • Update include/exclude handling for output tracing: #30184
  • make import trace consistent between runtime and build: #30175
  • Add middlewareCount info to build optimized: #30185
  • Change AVIF to opt-in via configuration: #30180
  • Add page config swc transform: #30183
  • Move tracing next-server to next build: #30190
  • Update to latest caniuse-lite version: #30194
  • Remove all: initial in favor of specific styles on next/image: #30191
  • Upgrade styled-jsx for react 18 improvement: #30179
  • Enable SWC by default when there is no custom Babel config: #29811
  • Enable outputFileTracing by default: #30202
  • Add isDevfallback to cache name to create a separate cache for the fallback compiler: #30227
  • Use SWC for middleware: #30209
  • Update swc: #30230
  • Add deprecation note for target: #30200
  • Add initial documentation for output file tracing: #30199
  • partially migrate to webpack 5 types: #30189
  • hide next-middleware-loader in import trace: #30243
  • fix some labels for middleware stuff: #30241
  • Use Log.warn() instead of console.warn() in next-server: #30240
  • test, fix and document all possible import types for URL imports: #30165
  • Ensure isServer is true when compiling middleware: #30242
  • Add initial test trace outputs: #30246
  • Move swcMinify out of experimental: #29810
  • Add events polyfill: #30256
  • next-swc: Support more platforms: #30254
  • Update error for failing to load SWC bindings: #30269
  • update webpack: #30268
  • fix middleware on windows: #30253
  • Add warning for large amount of page data: #29956
  • Add warning when LCP image is missing priority prop: #30221
  • New Middleware API signature: #30282
  • Fix trace case with tsconfig/jsconfig baseUrl: #30286
  • Warn when mutating res if not streaming: #30284
  • Chore/publish all swc: #30289
  • Update swc-minify-enabled link: #30290
  • Fix middleware header propagation: #30288
  • Move outputFileTracing config up: #30295
  • Track usage of swc features: #30297
  • Ensure null bytes in resolved path are handled: #30313
  • Improve deprecation errors for new middleware API: #30316

Documentation Changes

  • Update docs to clarify that image imports are static: #28744
  • Add note to Gatsby migration guide about using next/image with custom loaders.: #28805
  • doc: fix typo: #28817
  • (docs) Remove duplicate comma: #28850
  • (docs) Add permanent property in redirect object: #28852
  • Update next/link API docs to mention a11y and ESLint rule.: #28841
  • name should be key: #28917
  • chore(examples): switch to Script component on the google analytics example: #27674
  • Fixed issue with grammar: #28964
  • Fixed typo: #28989
  • Fix minor typo in no-img-element.md: #29027
  • Add more examples of static generation to docs page.: #29052
  • Add note about using Sharp for next/image to deployment docs.: #29067
  • Add client-side debugging instructions: #28815
  • Use new @clerk/nextjs package in with-clerk example, update Next.js authentication docs: #28906
  • Update router.prefetch section to clarify it supports dynamic routes: #29070
  • Ensure manifests check has correct exit code on fail: #29183
  • Fix minor typos: #29188
  • Update Gatsby migration guide to use image imports.: #29178
  • Ensure href/as behavior points to correct docs: #29270
  • Update invalid-getstaticpaths-value.md: #29397
  • Update imperative routing docs to have better a11y: #29382
  • Add Stitches example to CSS-in-JS docs: #29498
  • Update getServerSideProps docs with req.cookie note: #29457
  • docs: Link to getInitialProps on Custom App page: #29567
  • Update permanent redirect field documentation: #29557
  • Use npx create-next-app@latest instead of the version that is installed: #29595
  • docs: Clarify locale properties on context object in data-fetching: #29566
  • docs: remove this usage from function component: #29596
  • Overhaul image component documentation: #29186
  • Document i18n routing with dynamic routes: #29632
  • Fix debugging docs markdown lang: #29674
  • Grammatical fixes: #29676
  • Fix typo in image optimization documentation: #29685
  • Fixed method for removing class: #29735
  • Fix test running command in testing.md: #29778
  • docs(testing): added Playwright guide: #29832
  • Add Scss variables section to Built-in CSS Support document: #29822
  • Update testing based on Failed to parse src "test-file-stub" on `next…: #29039
  • Update docs for image caching behavior: #29895
  • Update typo in response helpers doc: #29899
  • Update minimum Node version in Getting Started: #29952
  • docs: Remove invalid link "Glamor": #29982
  • Update docs for Prerender Error message: #30044
  • Update documentation to fix github cache key: #29983
  • Update eslint.md with instructions for installing Prettier plugin dependency: #29764
  • Add image example with background color using blurDataURL: #30111
  • docs: remove mention of experimental pageDataCollectionTimeout: #30107
  • Update upgrade docs: #30265
  • Add minimum Node.js version to upgrading guide: #30274
  • Fix typo of upgrading: #30276
  • Add note about improved CSS parser for styled-jsx to upgrading guide: #30280
  • Add "priority" section to Image Optimization doc: #30218
  • Add more docs.: #30320

Example Changes

  • with-stitches example fixes #28650: #28652
  • Updates @react-three/drei version and other dependencies.: #28755
  • fixes with-typescript-graphql: unable to resolve dependency tree: #28637
  • Examples Prepr CMS update: #28871
  • Fix Typo in "with-eslint" Example docs: #28601
  • Updates supertokens-node dependency version: #28916
  • Fix falsy values not being returned in post fields: #29011
  • [Examples] Updates with-google-tag-manager example to use <Script> component: #29061
  • Update Redux example to use Toolkit + update dependencies.: #29104
  • fix(with-sentry example): Small tweaks: #28359
  • bugfix: remark/webpack conflict: #29180
  • Fix dependency in api-routes example: #29181
  • Fix type-check in Temporal example: #28546
  • Update with-react-intl example: #28336
  • switch to Script component on the facebook pixel example: #29192
  • Update with-segment-analytics example to use next/script component: #29282
  • fix: cover image redirect to undefined: #29311
  • Update Prisma example: #29459
  • Fixed MongoParseError: #29277
  • Add id to inline gtag script: #29530
  • Updates supertokens-auth-react dependency version: #29547
  • Update examples/cms-contentful: #29641
  • Adding Formspree contact-form example: #29314
  • Rename utils to lib: #29651
  • Update typescript version: #29854
  • Update mongoose and swr and remove no longer needed connection options: #29934
  • Fixed Favicons URL mismatch across the project in [examples/blog-starter] : #29990
  • Updating with-supertokens example: #29876
  • [examples] Fix deploy button URL in with-sentry example: #30112
  • Update image component example to use AVIF: #30294

Misc Changes

  • Bug fix for lint rule: #28677
  • router-is-ready test. Clean up unused vars.: #28723
  • Fix next lint no-document-import-in-page on Windows: #28745
  • Fix lerna publish for automation token: #28750
  • Update github labeler with eslint-plugin-next: #28751
  • Update to new npm publish token: #28772
  • Change create-next-app getting started text in TypeScript template: #28718
  • exclude test files from copy in trace-next-server: #28819
  • Add line break to typescript template: #28760
  • Update precompiled
  • Upgrade upload-artifact action
  • Trim large test output to not exceed limit: #28881
  • Fix create-next-app tests from example change: #28972
  • Update test workflows for mac/react: #29060
  • Remove extra macOS test workflow: #29064
  • Fix minor typo in index.test.js: #29065
  • Ensure browser instances are not re-created un-necessarily: #29091
  • Merge branch 'canary' of github.com:vercel/next.js into canary
  • Update swc dependencies: #29151
  • Workflow improvements: #29155
  • Temporarily disable unreliable tests: #29249
  • Ensure we only ignore .git cache for check-precompiled: #29274
  • Ensure actions/cache paths match for restoring: #29275
  • Update webpack5 import when using local webpack version
  • Update font-optimization test snapshot: #29305
  • fix(create-next-app): starter styling errors: #28096
  • Remove unsafeCache from benchmark + use cross-env for benchmark: #29425
  • Update test timings endpoint: #29443
  • fix test/integration/app-document-remove-hmr flake: #29486
  • Update stats-config for release stats: #29654
  • Add automated bench script for nested-deps: #29583
  • Exclude SWC test input/output JS from eslint checks
  • Exclude SWC test input/output JS from prettier checks
  • Exclude bench/nested-deps from prettier check
  • avoid running multiple test from the same directory in parallel: #29830
  • Add rich to codeowners for docs: #29848
  • Pin create-next-app to eslint@v7: #29837
  • make test directories more unique: #29864
  • Add native build caching to main workflow also: #29920
  • add trace-to-tree script to allow to visualize traces on the commandline: #29942
  • Update labeler.json
  • Fix repo-setup when .DS_Store exists: #30119
  • fix(docs): Clarify contribution docs about linting: #30123
  • improve CI stability: #30171
  • Update removeHash handling for stats-app: #30235
  • upload test traces for integration tests too: #30260
  • Update test-pnp tests: #30273
  • Add necessary workflow job dependencies: #30291

Credits

Huge thanks to @prateekbh, @andersonleite, @huozhi, @styfle, @mrmckeb, @housseindjirdeh, @buraksakalli, @espipj, @devknoll, @sokra, @leerob, @royal, @Perry-Olsson, @well-balanced, @AlexVilchis, @RobEasthope, @ijjk, @msp5382, @tim-hanssen, @appsplash99, @padmaia, @scottrepreneur, @smakosh, @catnose99, @adrienharnay, @kdy1, @rishabhpoddar, @donsn, @volcareso, @kara, @oiva, @KonstHardy, @timneutkens, @sinchang, @janicklas-ralph, @TyMick, @lobsterkatie, @rezathematic, @colinclerk, @x4th, @fracture91, @lorensr, @Sheraff, @HaNdTriX, @emilio, @oluan, @ddzieduch, @Dev-CasperTheGhost, @ctjlewis, @thien-do, @AryanBeezadhur, @Bundy-Mundi, @shuding, @kylemh, @vitorbal, @zNeb, @jacksonhardaker, @micro-chipset, @arthurdenner, @whitep4nth3r, @kyliau, @colevscode, @atcastle, @velocity23, @jonowu, @Blevs, @GustavoEdinger, @harryheman, @kriswuollett, @mxschmitt, @PhattOZ, @finn-orsini, @oste, @genetschneider, @jantimon, @molebox, @angelopoole, @thibautsabot, @AlfonzAlfonz, @mohamedbhy, @matamatanot, @christianvuerings, @pgrodrigues, @kimizuy, @paul-creates, @TimBarley, @georgegach, @ionut-botizan, @javivelasco, @rojserbest, and @ka2n for helping!

Don't miss a new next.js release

NewReleases is sending notifications on new releases.