/** * Even though some module is not included in WordPress core, `wp-scripts` treats it as an external module. * * The following code will cause an error like: `Uncaught TypeError: Cannot read properties of undefined (reading 'I18nProvider')`. * ```js * import { I18nProvider } from '@wordpress/react-i18n'; * ``` */ const defaultConfig = require('@wordpress/scripts/config/webpack.config'); const DependencyExtractionWebpackPlugin = require('@wordpress/dependency-extraction-webpack-plugin'); const notWpCoreBundledModules = [ '@wordpress/react-i18n', ]; defaultConfig.plugins = [ ...defaultConfig.plugins.filter(plugin => plugin.constructor.name !== 'DependencyExtractionWebpackPlugin'), new DependencyExtractionWebpackPlugin({ requestToExternalModule(request) { if (notWpCoreBundledModules.includes(request)) { return false; } // With `useDefaults: true`, `return;` means default behavior. }, requestToExternal(request) { if (notWpCoreBundledModules.includes(request)) { return false; } // With `useDefaults: true`, `return;` means default behavior. }, }), ]; module.exports = defaultConfig;