2025-09-08
Shiftpack is an open-source npm package that helps developers migrate React ecosystem libraries between versions with minimal manual work.
It is powered by jscodeshift and comes with pre-built codemods for popular libraries like React Router, Redux, and Material UI.
Upgrading major versions in React projects often requires large, error-prone manual changes —
for example, migrating from React Router v5 → v6, moving from classic Redux → Redux Toolkit, or upgrading Material UI v4 → v5.
Shiftpack makes this process easier by:
npm install -g shiftpack
Or use npx
directly:
npx shiftpack migrate react/v5-to-v6 --path src/
You can run a single migration or apply an entire migration collection:
shiftpack migrate react/v5-to-v6/useEffectMigration --path src/
This command scans your src/
folder and automatically updates matching code patterns.
Before migration (React Router v5):
import { useRouteMatch } from "react-router-dom";
const Profile = () => {
const match = useRouteMatch();
return <Link to={`${match.url}/settings`}>Settings</Link>;
};
<p className="my-page-content">After migration (React Router v6):</p>
import { useResolvedPath } from "react-router-dom";
const Profile = () => {
const match = useResolvedPath("");
return <Link to={`${match.pathname}/settings`}>Settings</Link>;
};
<h2 className="my-section-title">Roadmap</h2>
<ul className="list-disc list-inside my-page-content pl-4">
<li>Expand React Router v5 → v6 codemods</li>
<li>Redux and Redux Toolkit migrations</li>
<li>Material UI v4 → v5 support</li>
<li>Future support for Vue ecosystem</li>
<li>CLI improvements & interactive mode</li>
</ul>
<p className="my-page-content"> In short, Shiftpack is a tool that
<b>reduces migration pain</b>, saves developer time, and minimizes
errors when upgrading dependencies in React projects. </p>