oont-contents/plugins/jetpack/jetpack_vendor/automattic/jetpack-publicize/webpack.config.js
2025-04-06 08:34:48 +02:00

73 lines
1.7 KiB
JavaScript

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',
'editor-jetpack-sidebar': './src/js/editor-jetpack-sidebar.js',
'editor-social-sidebar': './src/js/editor-social-sidebar.js',
},
},
];