remorses / next-superjson

Automatically transform your Next.js Pages to use SuperJSON, without losing swc support

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Getting started

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.

How it works

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.

Turbopack support

Since version 1 this plugin also supports the --turbo flag.

What is the different between this plugin and next-superjson-plugin SWC plugin?

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.

Sponsors

Notaku

Notaku

About

Automatically transform your Next.js Pages to use SuperJSON, without losing swc support


Languages

Language:TypeScript 88.9%Language:JavaScript 11.1%