-
Notifications
You must be signed in to change notification settings - Fork 212
Description
Check latest updates from Docusaurus here: https://docusaurus.io/docs
Refer https://github.com/facebook/react-native-website/blob/main/website/docusaurus.config.ts
https://docusaurus.io/docs/migration
🔁 Step-by-Step Migration from Docusaurus v1 → v2
1. 📦 Install Docusaurus v2
bashCopyEditnpm install --save @docusaurus/core@latest @docusaurus/preset-classic@latest
Or if using Yarn:
bashCopyEdityarn add @docusaurus/core@latest @docusaurus/preset-classic@latest
2. 📁 Rename siteConfig.js to docusaurus.config.js
Then start adapting its contents. For example:
v1:
jsCopyEditconst siteConfig = { title: 'My Site', tagline: 'The tagline', ... };
v2:
jsCopyEditmodule.exports = { title: 'My Site', tagline: 'The tagline', url: 'https://yoursite.com', baseUrl: '/', ... }
More about docusaurus.config.js:
👉 v2 config reference
3. 🧹 Remove pages/ and use /src/pages
Docusaurus v2 uses src/pages for your custom React pages.
You can convert Markdown docs to use the docs/ folder and React pages into src/pages.
4. 📑 Move docs/, update sidebar
-
Keep your Markdown files under
/docs. -
Create a
sidebars.jsfile for navigation:
jsCopyEditmodule.exports = { docs: [ { type: 'category', label: 'Getting Started', items: ['intro', 'installation'], }, ], };
5. 🎨 Update custom styling
-
Put custom CSS into
src/css/custom.css. -
Add it to your config:
jsCopyEdittheme: { customCss: require.resolve('./src/css/custom.css'), },
6. ✨ Use Presets
In docusaurus.config.js, use the @docusaurus/preset-classic preset to enable docs/blog/theme:
jsCopyEditpresets: [ [ '@docusaurus/preset-classic', { docs: { sidebarPath: require.resolve('./sidebars.js'), editUrl: 'https://github.com/your-org/repo/edit/main/docs/', }, theme: { customCss: require.resolve('./src/css/custom.css'), }, }, ], ],
7. 🖼 Update Images and Assets
Move static assets like logos, favicons, etc. into /static.
bashCopyEdit/static/img/...
Access them in code like /img/logo.svg.
8. 🧪 Test Locally
bashCopyEditnpx docusaurus start
This runs your site at http://localhost:3000
🧰 Optional: Use Migration Tool
There's a v1 to v2 migration tool to help convert common config:
bashCopyEditnpx @docusaurus/migrate
Run it inside your existing Docusaurus v1 project.
✅ Summary Checklist
Task Done?
| Task | Done? |
|---|---|
| Install v2 packages | 🔜 |
| Rename siteConfig.js | 🔜 |
| Setup docs, src/pages | 🔜 |
| Create sidebars.js | 🔜 |
| Move assets to /static | 🔜 |
| Update styling | 🔜 |
| Run site locally | 🔜 |
To migrate your Docusaurus site to version 3.7, follow these steps:
📦 1. Upgrade Dependencies
Update your Docusaurus packages to the latest versions:
npm install @docusaurus/core@latest @docusaurus/preset-classic@latestyarn add @docusaurus/core@latest @docusaurus/preset-classic@latest🔄 2. Review Breaking Changes
Docusaurus v3 introduces updates, especially related to MDX. Review the migration guide to understand necessary changes:
Docusaurus v3 Migration Guide
docusaurus.io
🚀 3. Leverage New Features in v3.7
Docusaurus v3.7 includes several enhancements:
docusaurus.io
React 19 Support.
Rspack Incremental Builds: Improved build performance with Rspack incremental builds enabled by default.
Enhanced Blog Plugin: Support for additional author social icons like Bluesky, Mastodon, Threads, Twitch, YouTube, and Instagram.
New SVGR Plugin: Facilitates importing SVGs as React components.
For a comprehensive list of changes, refer to the v3.7.0 changelog.
docusaurus.io
🧪 4. Test Your Site
After upgrading, run your site locally to ensure everything works as expected:
npm run startAddress any issues that arise during testing.