const path = require( 'path' ); const jetpackWebpackConfig = require( '@automattic/jetpack-webpack-config/webpack' ); const socialWebpackConfig = { mode: jetpackWebpackConfig.mode, devtool: jetpackWebpackConfig.devtool, output: { ...jetpackWebpackConfig.output, path: path.resolve( './build' ), }, optimization: { ...jetpackWebpackConfig.optimization, }, resolve: { ...jetpackWebpackConfig.resolve, }, node: false, plugins: [ ...jetpackWebpackConfig.StandardPlugins() ], module: { strictExportPresence: true, rules: [ // Transpile JavaScript jetpackWebpackConfig.TranspileRule( { exclude: /node_modules\//, } ), // Transpile @automattic/* in node_modules too. jetpackWebpackConfig.TranspileRule( { includeNodeModules: [ '@automattic/' ], } ), // Handle CSS. jetpackWebpackConfig.CssRule( { extensions: [ 'css', 'sass', 'scss' ], extraLoaders: [ { loader: 'postcss-loader', options: { postcssOptions: { config: path.join( __dirname, 'postcss.config.js' ) }, }, }, 'sass-loader', ], } ), // Handle images. jetpackWebpackConfig.FileRule(), ], }, externals: { ...jetpackWebpackConfig.externals, jetpackConfig: JSON.stringify( { consumer_slug: 'jetpack-social', } ), }, }; module.exports = [ { ...socialWebpackConfig, entry: { 'classic-editor-share-limits': './src/js/classic-editor-share-limits.js', 'classic-editor-connections': './src/js/classic-editor-connections.js', }, }, { ...socialWebpackConfig, entry: { 'social-admin-page': './src/js/social-admin-page.js', }, }, ];