microsoft / microsoft/react-native-windows-samples
Migrating from Docusaurus v1 to v2 / v3+ for website
@anupriya13 is already working on this.
Since Apr 21, 2025.
- Dominant language
- C#
- Stars
- 544
- Forks
- 218
- PR merge metrics
- No merged PRs in 30d
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@latest
yarn 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 start
Address any issues that arise during testing.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up β it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.