Important
Version 2.x requires Next.js 16+. If you're using Next.js 15, install version 1.x instead:
npm install next-superjson@1 next-superjson-plugin superjson
Install the library with your package manager of choice, e.g.:
npm install next-superjson next-superjson-plugin superjson
Since this is a companion to SuperJSON,
make sure it's also installed, also with next-superjson-plugin which is a runtime dependency.
Add the plugin to your next.config.js.
If you don't have one, create it.
const { withSuperjson } = require('next-superjson')
module.exports = withSuperjson()({})Note
Notice that you have to call the plugin function 2 times, this is to support options in the future
That's it! Now you're free to use all values and type supported by SuperJSON in your Next.js Components.
New Nextjs 12 uses swc to compile user code by default, adding a custom .babelrc file will make Nextjs compile everything using Babel instead (much slower).
This plugin will inject the superjson plugin only on files under the pages directory so you can keep using swc for all the other files.
Version 1 of this plugin will use the SWC superjson plugin instead of the Babel plugin, this is because the previous Babel plugin no longer works, thanks to commonjs and ESM skill issues by one of the core developers.
Since version 1 this plugin also supports the --turbo flag.
next-superjson-plugin broke in version 15 of Next.js because SWC was updated to a version that no longer supported plugins built with a different version of swc_core binary.
This plugin instead freezes the version of @swc/core to one that is guaranteed to work.
