feat(core): Replace Webpack with Rspack - siteConfig.future.experimental_faster.rspackBundler (#10402)

This commit is contained in:
Sébastien Lorber 2024-10-11 10:50:24 +02:00 committed by GitHub
parent c7fd8d1702
commit 74c09aee35
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
17 changed files with 390 additions and 174 deletions

View file

@ -7,13 +7,17 @@
import type {PluginConfig} from '@docusaurus/types';
async function createRsdoctorBundlerPlugin() {
function createRsdoctorBundlerPlugin({isServer}: {isServer: boolean}) {
// TODO Shitty workaround to bypass lib typechecking
// package does not work will with skipLibCheck false
// // eslint-disable-next-line
// const {RsdoctorWebpackMultiplePlugin} = require('@rsdoctor/webpack-plugin');
// eslint-disable-next-line
const {RsdoctorWebpackMultiplePlugin} = require('@rsdoctor/webpack-plugin');
const {RsdoctorRspackMultiplePlugin} = require('@rsdoctor/rspack-plugin');
return new RsdoctorWebpackMultiplePlugin({
// return new RsdoctorWebpackMultiplePlugin({
return new RsdoctorRspackMultiplePlugin({
name: isServer ? 'server' : 'client',
disableTOSUpload: true,
supports: {
// https://rsdoctor.dev/config/options/options#generatetilegraph
@ -31,11 +35,13 @@ export default (async function RsdoctorPlugin() {
if (!process.env.RSDOCTOR) {
return null;
}
const plugin = await createRsdoctorBundlerPlugin();
const pluginClient = await createRsdoctorBundlerPlugin({isServer: false});
const pluginServer = await createRsdoctorBundlerPlugin({isServer: true});
console.log('Rsdoctor plugin enabled');
return {
name: 'rsdoctor-plugin',
configureWebpack: () => {
configureWebpack: (__config, isServer) => {
const plugin = isServer ? pluginServer : pluginClient;
return {
plugins: [plugin],
};