diff --git a/packages/amplify-graphiql-explorer/config/webpack.config.js b/packages/amplify-graphiql-explorer/config/rspack.config.js similarity index 97% rename from packages/amplify-graphiql-explorer/config/webpack.config.js rename to packages/amplify-graphiql-explorer/config/rspack.config.js index 2c8208a2e1b..ea61bc260e6 100644 --- a/packages/amplify-graphiql-explorer/config/webpack.config.js +++ b/packages/amplify-graphiql-explorer/config/rspack.config.js @@ -1,19 +1,16 @@ const fs = require('fs'); const path = require('path'); -const webpack = require('webpack'); +const rspack = require("@rspack/core"); const resolve = require('resolve'); const HtmlWebpackPlugin = require('html-webpack-plugin'); const CaseSensitivePathsPlugin = require('case-sensitive-paths-webpack-plugin'); const InlineChunkHtmlPlugin = require('react-dev-utils/InlineChunkHtmlPlugin'); -const TerserPlugin = require('terser-webpack-plugin'); -const MiniCssExtractPlugin = require('mini-css-extract-plugin'); -const CssMinimizerPlugin = require('css-minimizer-webpack-plugin'); -const { WebpackManifestPlugin } = require('webpack-manifest-plugin'); +const { RspackManifestPlugin } = require("rspack-manifest-plugin"); const InterpolateHtmlPlugin = require('react-dev-utils/InterpolateHtmlPlugin'); -const WorkboxWebpackPlugin = require('workbox-webpack-plugin'); +const WorkboxWebpackPlugin = require("@aaroon/workbox-rspack-plugin"); const ModuleScopePlugin = require('react-dev-utils/ModuleScopePlugin'); const getCSSModuleLocalIdent = require('react-dev-utils/getCSSModuleLocalIdent'); -const ESLintPlugin = require('eslint-webpack-plugin'); +const ESLintPlugin = require("eslint-rspack-plugin"); const paths = require('./paths'); const modules = require('./modules'); const getClientEnvironment = require('./env'); @@ -97,7 +94,7 @@ module.exports = function (webpackEnv) { const loaders = [ isEnvDevelopment && require.resolve('style-loader'), isEnvProduction && { - loader: MiniCssExtractPlugin.loader, + loader: rspack.CssExtractRspackPlugin.loader, // css is located in `static/css`, use '../../' to locate index.html folder // in production `paths.publicUrlOrPath` can be a relative path options: paths.publicUrlOrPath.startsWith('.') ? { publicPath: '../../' } : {}, @@ -219,7 +216,7 @@ module.exports = function (webpackEnv) { minimize: isEnvProduction, minimizer: [ // This is only used in production mode - new TerserPlugin({ + new rspack.SwcJsMinimizerRspackPlugin({ terserOptions: { parse: { // We want terser to parse ecma 8 code. However, we don't want it @@ -258,8 +255,7 @@ module.exports = function (webpackEnv) { }, }, }), - // This is only used in production mode - new CssMinimizerPlugin(), + new rspack.LightningCssMinimizerRspackPlugin(options), ], }, resolve: { @@ -516,14 +512,14 @@ module.exports = function (webpackEnv) { ].filter(Boolean), }, plugins: [ - new webpack.ProvidePlugin({ + new rspack.ProvidePlugin({ Buffer: ['buffer', 'Buffer'], }), - new webpack.ProvidePlugin({ + new rspack.ProvidePlugin({ process: 'process/browser', }), // Generates an `index.html` file with the