v9.5.0
Minor Changes
- Fix pages/index.js and pages/index/index.js behavior: #13699
- Use buildManifest to load page JS: #13870
- Enable Optional Catch-All by Default: #14687
- Add no-anon-default-export Babel lint rule: #14519
- Re-enable scroll restoration behind flag: #14046
- Attach previewData to API Route request: #13373
- Add
res.redirect
response helper: #14705 - Stabilize revalidate: #15338
- Use chunkhash instead of buildId for pages: #13937
- De-experimentalize basePath config: #14283
- De-experimentalize custom-routes: #14602
- Stabilize Trailing Slash API: #15331
Patches
Documentation
- Better NODE_ENV explanation: #13476
- Update AMP validation docs: #13525
- Update environment variables documentation: #13618
- Update links in environment variables documentation: #13621
- Suggest
npx
overnpm init
: #13637 - Add missing CMS links: #13683
- Add postcss-preset-env to the warning when customising the PostCSS configuration: #13695
- Use proper Jamstack casing: #13697
- Added React Strict Mode documentation: #13723
- Add supported browsers and features: #13741
- Small wording change (can => have to): #13757
- Update instances of Now to Vercel where applicable: #13760
- Adjust custom polyfill suggestion: #13766
- Add App.getInitialProps example to the TypeScript page: #13785
- Prefer docs site for documentation links in CMS examples: #13826
- Add FAQ section to Built-in CSS Support: #13846
- Small grammar fix.: #14043
- Update custom server docs: #14147
- Update preview-mode.md: #14210
- Add Fast Refresh Documentation: #14273
- Fix typo in fast refresh documentation: #14296
- Docs: update links to docs site: #14305
- [Docs] Focus on useRouter: #14515
- Update the passHref link: #14584
- Updated exportPathMap docs: #14630
- Add basePath documentation: #14882
- Add custom routes docs (rewrites, redirects, headers): #14887
- Change default response code to 307 from 302 in docs: #14947
- Fixed typo in page-without-valid-component.md: #15022
- Update prerender-error.md: #14875
- Fixed some minor typos: #15080
- Fixed a minor typo: #15077
- Update docs about type checking: #15103
- Update docs for basePath custom-routes interop: #15140
- Documentation improvements from feedback: #14544
- Document API Middlewares with TypeScript: #14275
- Docs: include test env in default env vars: #13708
- Clarify optional catch all vs catch all routes: #15290
- Fix common misspelling errors: #15288
- Remove caveat in custom document docs: #15355
- More helpful README: #14830
- TypeScript documentation for _document.tsx: #15386
- Add static tweet link: #15493
Core
- Lint for invalid imports: #13482
- Fail production build quickly on errors: #13496
- Extract TypeScript preflight functions: #13510
- Speedup tests: #13461
- Replace
fork-ts-checker-webpack-plugin
with faster alternative: #13529 - Update ampproject/toolbox-optimizer: #13547
- Update babel config found log to new logging output: #13550
- Remove old reloading code: #13554
- Add support for rewriting non-fallback SSG pages: #11010
- Add ETag Support for API routes: #12802
- Updated browserslist/caniuse-lite: #13605
- Update waitUntilValid parameters: #13612
- Handle encoding for data requests and fix fallback response: #13622
- Make getStaticPaths work with optional catch-all routes: #13559
- Remove middleware function that is never called: #13642
- Added no-shadow rule to eslint: #13645
- Propagate Serverless Errors to Platform: #12841
- Use inclusive naming for variables / examples: #13657
- Remove granularChunks experimental option as it was launched: #13663
- Remove remaining granular chunks references: #13672
- Skip reading filesystem in favor of
sourcesContent
: #13677 - Remove refs to old css experiment: #13673
- Simplify CODEOWNERS: #13679
- Do not syntax highlight collapsed frames: #13684
- Removed autodll: #13669
- Detailed error and warnings upon
next()
call: #13539 - Remove unused variable: #13716
- Update rewrite dynamic SSG error: #13724
- Add a note about optional catch-all and rootmost route: #13791
- Add initial labeler WebHook config: #13772
- Stabilize CSS HMR Tests: #13811
- Fix base path handling with URL queries in dev server: #13560
- Refactor: Use native fs instead of fs-extra and promisify: #13841
- Clean up render.tsx options: #13759
- Preserve url better in exportTrailingSlash: #13840
- Remove some leftovers after index page updates: #13876
- Fix message on getStaticPaths conflict with getServerSideProps: #13874
- Update handling for basePath to only automatically add: #13817
- Combine taskr next-server tasks into one: #13842
- Update AMP Optimizer to 2.5.1: #13925
- Update to reject when test command fails: #13722
- Change text from "Attention" to "Warning": #13973
- Prepare custom routes loading for adding additional routes: #13857
- Add scroll restoration handling after render is complete: #13914
- Prioritize webpack bootstrapping first: #13987
- Invert colors of compiling indicator: #13995
- Make sure to watch all next-server files: #14023
- Fix dynamic route match and basePath: #14036
- Fix Fast Refresh with Page Config: #14041
- Eliminate public folder enumeration: #14042
- Normalize asPath between SSR and CSR with basePath: #14040
- Revert "Add scroll restoration handling after render is done": #14075
- Add test case for loading 404 on invalid bundle: #14082
- Tests: fail when cannot replace content: #14087
- Simplify test checks: #14094
- Remove Head.rewind as it's no longer needed: #14091
- Update AMP Optimizer to v2.5.2: #14095
- Add test for title and routeChangeComplete: #14132
- Update stats action for running locally: #14143
- Refactor AMP bundle removal: #14130
- Update AMP Optimizer to v2.5.3: #14173
- Chore: add retry method to loadable types: #14152
- Use requirePage for /_document and /_app: #14176
- Update routeKeys to handle non-word characters: #12801
- Refactor moveExportedPages to use getPagePath: #14247
- Render a helpful message for null GS(S)P return: #14252
- WSL should be considered Windows for HMR option: #14254
- Update filename generation for client-side compilation: #14279
- Fix typo in test names: "treversing" → "traversing": #14347
- Correct /_next/data link for GS(S)P with basePath: #14376
- Fix prefetch and some other issues with optional catch all: #14400
- Open click-to-open editor in foreground for windows: #14307
- Prettier
trailingComma
default value toes5
since 2.0: #14391 - Do not remove no-FOUC styles too early: #14448
- Shave a few bytes off the bootstrap code: #14457
- Update route regex for optional catch-all parameters in named regexes: #14456
- Remove buildId from server-side files: #14413
- Update to rely on dynamic param values from proxy: #12608
- Fix prerendered nested index handling: #14383
- Normalize trailing slashes: #13333
- Ensure dev overlay uses basePath for requests: #14475
- Webpack 5 build compat: #14498
- Remove deprecated webpack plugin in favor of the option: #14503
- Handle rendering next/head outside of Next.js: #14511
- Warn/revert custom devtool in development mode: #14285
- Avoid adding basePath when it's not needed: #14535
- Fix windows tests: snapshot backslash needs to be escaped: #14559
- Fix native-url path parsing bug: #14442
- Use entry option instead of custom make hook: #14527
- Fix trailing slash handling in exporting pages with getStaticPaths: #14620
- Use assetEmitted hook instead of afterEmit: #14626
- Positive req/seq change is not a warning: #14640
- Clean up plugins: #14676
- Convert incremental generation cache to a class: #14660
- Handle trailing slashes, even when query parameters: #14650
- Update to use getDataHref in fetchNextData: #14667
- Fix dynamic route encoding for NextLinks: #14281
- Upgrade CSSNano Version: #14638
- Fix link to file url behavior with trailingSlash: #14681
- Avoid pulling extra code in the bundles for trailingSlash logic: #14696
- Modify global css import error message: #14639
- Fix encoding for env files in serverless mode: #14750
- Add etag support for getServerSideProps/getStaticProps pages: #14760
- Use single webpack runtimeChunk for Node.js compilation: #14722
- Fix basepath root handling: #14756
- Update warning for rewriting to auto-export dynamic pages: #14751
- Convert link to function component: #14633
- Fix URL being updated with basePath for 404 page: #14740
- Add NextWebVitalsMetric type for reportWebVitals: #14675
- Replace extra source line in webpack 5: #14793
- Ie11 polyfills: #13704
- Change authors member and links: #14367
- Add webpack peerdependency to react-dev-overlay: #14842
- BasePath: Resolve links against router pathname instead of window.location: #14804
- Fix basepath browser back/forward issue: #14861
- Add warning when viewport meta tag is added to _document.js: #13452
- Fix bug in profiling test: #14921
- Make sure routeKeys are PCRE compliant: #14987
- Fix root route optional catch-all prerendering: #14986
- Update next-bundle-analyzer readme: #14976
- Convert profiling mode from configuration option to CLI switch: #14920
- Make serverless-plugin compatible with webpack 5: #15010
- Add filename to error in webpack 5: #14977
- Make sure additional query values aren't added for auto-export: #15037
- Update ignored patterns for webpack 4: #15096
- Check for file name in anon export warning: #15061
- Add handling for custom-routes with basePath: #15041
- Avoid aggressive state loop: #15068
- Relax encoding on dynamic prerendered routes: #14717
- Trailing slash basepath: #14781
- Replace node.js url module with WHATWG URL: #14827
- Update Fast Refresh full reload warning: #15062
- Make sure bad links in router methods resolve in production: #15135
- Fix: Invalid flag provided to next build results in UnhandledPromiseRejectionWarning: #15049
- Stabilize azure test: #14999
- Fix Web Workers with Fast Refresh: #15145
- Correctly fetch data for root route: #15149
- Find pages/_document.js chunk in development: #15172
- Fixed prettier --write args in package.json: #15187
- Make type checking compatible with webpack 5: #15158
- Make sure the correct chunk names are used in webpack 5: #15204
- Fix basepath trailing slash: #15200
- Use
core-js
for URL(SearchParams) Polyfill: #15209 - Improve query conversion logic: #15236
- Fix ky-universal-polyfill in webpack 5: #15227
- Add test for query param bug #15233: #15238
- Fix app-document-import-order test for webpack 5: #15224
- Fix DevServer#close doesn't close all resources: #15247
- Fix no-anon-default-export for webpack 5: #15293
- Drop
module: esnext
requirement in tsconfig.json: #15276 - Fix broken example link in docs for catch all routes: #15295
- Fix static data fetching when using absolute assetprefix: #15287
- Add Fast Refresh tests on macOS: #15300
- Do not duplicate compilation errors: #15299
- Verify that dataroutes work correctly with assetPrefix: #15309
- Add test for main.js in webpack.config.js: #15311
- Upgrade browserslist: #15324
- Bring over fixes from #15185: #15326
- Simplify trailing slash regex: #15335
- Fix basepath router events: #14848
- Added production, basic, and Fast Refresh test suites on macOS: #15366
- Fix cancellation control flow: #15361
- Fix Peer Dependency in React Refresh Utils: #15375
- Upgrade actions/cache to v2.1.0: #15415
- Update webpack to land chokidar patch for all Next.js users: #15460
- Tweak test retries for invalid-href suite: #15459
- Always resolve after router.prefetch(): #15448
- Make dynamic routes case-sensitive: #15444
- Stabilize more tests: #15470
- Upgrade cssnano-simple dependency: #15488
- Fix peer dependency: #15511
experimental
- Filtering unwanted jsx type in eslint plugin: #13520
- Add plugin to recommended eslint-plugin-next config: #13926
- Bug fixes for css eslint rule: #14202
- Only required polyfill.io lint rule: #15277
Create Next App
- Add .vercel to gitignore: #13595
- Remove unnecessary catch: #13639
- Chore(create-next-app): remove example picker: #13977
- Feat(create-next-app): Use CSS and CSS modules in default application template: #13983
- Use HEAD req for isUrlOk check: #14994
- CNA: replace make-dir with core recursive mkdir: #15006
- [create-next-app] Add engines to package.json: #15282
Examples
- Update with-redux example to use getStaticProps: #13378
- Update some examples to Vercel: #13477
- Add example with next-translate: #13511
- Fix typo in next-translate example: #13523
- Add with-web-worker example: #13444
- Update firebase to fix install errors on node 14: #13493
- Update linaria example: #13568
- Add with-mongodb example: #13028
- Update Stripe example: #13581
- Updated with redux persist: #13577
- Updated with redux thunk example: #13576
- Updated examples using NEXT_DATA: #13567
- Remove unused file from with-redux: #13570
- Updated with-magic example with new Environment Variables Support in Next.js 9.4+: #13623
- Fix with antd ssg: #13611
- Update with-typescript to remove React.FC: #13643
- Update with-redux-wrapper example: #13649
- Update chakra-ui example to pass through pageProps in custom app: #13690
- Refactor with redux observable: #13615
- Update test description of with typescript eslint jest example: #13732
- With-videojs fix: #13745
- Update Firebase Auth Example for New Env Support: #13587
- Add with-typescript-types: #13746
- Update fetch, env, UI, deps, and docs: #13756
- Replace dotenv example: #13770
- CMS Cosmic Example: #13499
- Normalize example gitignores: #13768
- Update to modern env handling for userbase example: #13774
- Fix sample command: #13789
- Docs: Fix links to Agility CMS Examples: #13794
- Removed React.FC from blog-starter-typescript: #13797
- Removed React.FC/FunctionComponent from with-typescript: #13798
- Refactor with-electron: #13800
- Enhance-with-redux-saga: #13764
- Move with-apollo to SSG: #13742
- Refactor with-electron-typescript: #13802
- Remove React.FC from with-stripe-typescript: #13803
- Fixed graphql-hooks example data prefetch: #13799
- Move api-routes-apollo-server-and-client to SSG: #13782
- Remove getInitialProps from with-rematch: #13834
- Update test snapshot in with-typescript-eslint-jest: #13847
- Fix typo in comment: #13883
- Update sentry example reade: #13899
- Move with-relay-modern to SSG: #13882
- Move with-graphql-hooks to SSG: #13858
- Move with-react-relay-network-modern to SSG: #13878
- Chore: remove-redundant-example-react-import: #13907
- [Example] Deprecate with-sentry in favor of with-sentry-simple: #13904
- Adding Example: with-recoil: #13380
- Update the with-graphql-react example: #13928
- using-preact: add Prefresh, DevTools & chunking fix: #13976
- Move with-apollo-and-redux to SSG: #13779
- Fix variable shadowing in blog-starter example: #13988
- Move api-routes-apollo-server-and-client-auth to SSG: #13849
- Move with-typescript-graphql to SSG: #13854
- With-mux-video update: #13992
- Added .next folder to gitignore for examples/blog-starter: #14003
- Update with-chakra-ui: #14035
- remove getInitialProps from with-firebase-authentication: #13895
- [Example] remove getInitialProps from aws-amplify-typescript: #13898
- Fix route in custom-server-koa example: #14080
- Add new import flow to CMS examples: #14053
- Fix using-preact dev mode issues: #14098
- Update with-userbase Example: #14100
- Fixed Avatar.js component where Strapi CMS would fail when fetching an image: #14084
- Update deploy button in the userbase example: #14107
- Use the expected import: #14111
- Use envLink for deploy buttons: #14110
- Fix(example): needs TypeScript support: #14115
- [with-recoil example] use functional form of state updaters for simplicity: #14014
- Fix broken link: #14158
- [Example] remove getInitialProps from aws-amplify: #13896
- Fix: validatePassword function logic: #14183
- Update Data Fetching Method: #14190
- Fix GraphQL Hooks Example Safari bug: #14205
- Switch to function component with-react-intl example: #14217
- Using cross-spawn for cross platform use in with-react-intl: #14231
- Chore(examples): update next to latest on cms examples: #14230
- Added missing .env.local.example file for with example firebase-authentication-app: #14235
- (fix) Missing props key from getServerSideProps: #14255
- Add
c=1
to deploy buttons on CMS Examples: #14293 - Fix csp errors in with-strict-csp-app example: #14262
- Thor/stripe/add use shopping cart example: #14239
- Update Algolia's Instant Search Example: #14233
- Remove getInitialProps from with-cookie-auth-fauna: #13887
- Update graphql-hooks with memcache: #14364
- Add A/B Tests and Feature Flags example: #13629
- Add example for proxying upstream with custom routes: #14374
- Use the vercel CLI for with-zones: #14480
- Remove unused package in with-apollo-and-redux example: #14507
- Fixing the docker multi-stage build failures: #14513
- Update index.js: #14528
- Add 'with-next-auth' example: #14530
- Add [with-storybook-typescript] example: #14398
- Remove next-cookies and prop-types: #14579
- Tailwind config: also look for .tsx .jsx and .ts: #14621
- Introduce react profiling production flag: #13873
- Add @prefresh/next to dependencies of preact example: #14649
- Add Environment Variables Example: #14575
- [examples/with-three-js] Component with useLoader can use dynamic import: #14648
- Fetch Data on Runtime (with-MongoDB-mongoose example): #14674
- Fix NextSeo example: #14643
- Example with Monogdb ReamlWeb: #14555
- Fix extra char in readme cms-sanity: #14725
- Update environment-variables example: #14653
- Update README.md for next-auth-example: #14763
- Update with-firebase-authentication styles: #14771
- Update examples React to 16.13.1: #14899
- Update example: update to new stitches version and api: #14876
- Fix cms-wordpress preview mode for post revisions: #14911
- With-stitches-styled: Update package.json: #14934
- Update package.json: #14938
- Update _document.js: #14937
- Update _document.js: #14936
- Add Prisma.io Examples List: #14917
- Updates thre three-js example with drei and modules transpilation: #14864
- With-stitches-styled: Update package.json: #14958
- Fix: Destructuring error in the cms-contenful example: #14970
- [cms-sanity] Expose the project id to the browser: #14941
- [cms-wordpress] Nest one-to-one relationships: #15007
- Fix download instructions in with-next-auth example: #15028
- Update README.md in Emotion starter example: #15035
- (chore) Add with-goober as an example: #15070
- Update dependencies for
with-iron-session
example: #15065 - Add .next to .gitignore: #15088
- Updated useUser.js: #14974
- Removed React import from pages/index.js: #15144
- Update/with-react-jss: #15156
- Fix with-expo-typescript install command: #15177
- Mark
preact
as externals for server bundle: #15110 - Update examples/with-apollo: #15178
- Update README.md: #15198
- Added .gitignore to examples that are deployed to vercel: #15127
- (chore) Add with-filbert as example: #15161
- Improve with-sentry readme: #15205
- Update examples/with-carbon-components: #15190
- Update with-universal-configuration-build-time example: #15228
- Remove broken demo from with-graphql-faunadb: #15267
- Update MST typescript example to use hooks: #15237
- Update to 3.0 in api-routes-apollo-server-and-client example: #15270
- Remove with-universal-configuration-runtime: #15268
- Chore(examples): update prismic-javascript to 3.0.1: #15263
- Updated import filename to the correct one: #15298
- Update react-md url for with-react-md: #15325
- Correct order of packages in Sentry example explanation: #15334
- Update
api-routes-graphql
README Link: #15350 - Updated typo: #15357
- EDITED: Cosmic demo updates: #15308
- Fixes Hapi custom server example: #15292
- MongoDB Example: #15029
- Update Sentry example for use with Sentry/Vercel integration: #15349
- Add Sitemap Example: #15047
- Example for Rewrites (Custom routes): #15403
- Link with-polyfills example to updated polyfill docs: #13943
- Upgrade Apollo Client to 3.0 in
examples/api-routes-apollo-server-and-client-auth
: #15272
CMS Examples
- Add WordPress Blog: #13194
- CMS Strapi Example: #12701
- Added Agility CMS example: #12788
- ButterCMS Example: #13908
- Storyblok CMS Example: #13993
- Added graphcms: #14026
Credits
Huge thanks to @chandan-reddy-k, @Timer, @aralroca, @artemisart, @sospedra, @prateekbh, @Prioe, @Janpot, @merceyz, @ijjk, @PavelK27, @marbiano, @MichelleLucero, @thorsten-stripe, @todortotev, @Skn0tt, @lfades, @timneutkens, @akhila-ariyachandra, @chibicode, @rafaelalmeidatk, @kirill-konshin, @jamesvidler, @JeffersonBledsoe, @tylev, @jamesmosier, @filipemarins, @Remeic, @vvo, @timothyis, @jazibsawar, @coetry, @adam-zacharski, @danwilliams, @tywmick, @matamatanot, @goldins, @mvllow, @its-tayo, @sshyam-gupta, @wilbert-abreu, @sebastianbenz, @jaydenseric, @developit, @dylanjha, @darshkpatel, @spinks, @stefanprobst, @moh12594, @jasonmerino, @cristiand391, @HyunSangHan, @mcsdevv, @M1ck0, @hydRAnger, @alexej-d, @valmassoi, @todortotev, @motleydev, @ekhattak, @jpedroschmitz, @JerryGoyal, @bowen31337, @phillip055, @balazsorban44, @chuabingquan, @youhosi, @andresz1, @bell-steven, @areai51, @wssn, @ndom91, @anthonyshort, @zxzl, @jbowes, @IamLizu, @PascalPixel, @ralphilius, @ysun62, @muslax, @elsigh, @AsherFoster, @botv, @tomdohnal, @christianalfoni, @tomasztunik, @gsimone, @illuminist, @jplew, @OskarKaminski, @RickyAbell, @steph-query, @ericgoe, @MalvinJay, @cristianbote, @Ashikpaul, @jensmeindertsma, @amorriscode, @abhik-b, @awareness481, @LukasPolak, @arvigeus, @romMidnight, @jackyef, @drumm2k, @kuldeepkeshwar, @bogy0, @Belco90, @wawjr3d, @tanmaylaud, @SarKurd, @kevinsproles, @dstotijn, @styfle, @blackwright, @BrunoBernardino, @heyAyushh, @Necmttn, @TrySound, @obedparla, @NyashaNziramasanga, @tonyspiro, @kukicado, @ceorourke, @MehediH, @robintom, @karlhorky, and @tcK1 for helping!