Skip to content
Closed
6 changes: 6 additions & 0 deletions src/wp-includes/script-loader.php
Original file line number Diff line number Diff line change
Expand Up @@ -279,6 +279,12 @@ function wp_default_packages_scripts( $scripts ) {
*/
$assets = include ABSPATH . WPINC . "/assets/script-loader-packages{$suffix}.php";

// Add the private version of the Interactivity API manually.
$assets[ "interactivity{$suffix}.js" ] = array(
'dependencies' => array(),
'version' => '6.4.0',
);

foreach ( $assets as $file_name => $package_data ) {
$basename = str_replace( $suffix . '.js', '', basename( $file_name ) );
$handle = 'wp-' . $basename;
Expand Down
64 changes: 58 additions & 6 deletions tools/webpack/blocks.js
Original file line number Diff line number Diff line change
Expand Up @@ -65,15 +65,66 @@ module.exports = function( env = { environment: 'production', watch: false, buil
const config = {
...baseConfig( env ),
entry: {
'file/view': normalizeJoin(baseDir, `node_modules/@wordpress/block-library/build-module/file/view` ),
'navigation/view': normalizeJoin(baseDir, `node_modules/@wordpress/block-library/build-module/navigation/view` ),
'navigation/view-modal': normalizeJoin(baseDir, `node_modules/@wordpress/block-library/build-module/navigation/view-modal` ),
'search/view': normalizeJoin(baseDir, `node_modules/@wordpress/block-library/build-module/search/view` ),
'navigation/view': normalizeJoin( baseDir, 'node_modules/@wordpress/block-library/build-module/navigation/view' ),
'image/view': normalizeJoin( baseDir, 'node_modules/@wordpress/block-library/build-module/image/view' ),
'query/view': normalizeJoin( baseDir, 'node_modules/@wordpress/block-library/build-module/query/view' ),
'file/view': normalizeJoin( baseDir, 'node_modules/@wordpress/block-library/build-module/file/view' ),
'search/view': normalizeJoin( baseDir, 'node_modules/@wordpress/block-library/build-module/file/view' ),
},
output: {
devtoolNamespace: 'wp',
filename: `[name]${ suffix }.js`,
path: normalizeJoin(baseDir, `${ buildTarget }/blocks` ),
filename: `./blocks/[name]${ suffix }.js`,
path: normalizeJoin( baseDir, buildTarget ),
chunkLoadingGlobal: `__WordPressPrivateInteractivityAPI_${ Math.floor( Math.random() * 1000 ) }__`,
},
resolve: {
alias: {
'@wordpress/interactivity': normalizeJoin( baseDir, 'node_modules/@wordpress/interactivity/src/index.js' ),
},
},
optimization: {
...baseConfig.optimization,
runtimeChunk: {
name: 'private-interactivity',
},
splitChunks: {
cacheGroups: {
interactivity: {
name: 'private-interactivity',
test: /^(?!.*[\\/]block-library[\\/]).*$/,
filename: `./js/dist/interactivity${suffix}.js`,
chunks: 'all',
minSize: 0,
priority: -10,
},
},
},
},
module: {
rules: [
{
test: /\.(j|t)sx?$/,
use: [
{
loader: require.resolve( 'babel-loader' ),
options: {
cacheDirectory: process.env.BABEL_CACHE_DIRECTORY || true,
babelrc: false,
configFile: false,
presets: [
[
'@babel/preset-react',
{
runtime: 'automatic',
importSource: 'preact',
},
],
],
},
},
],
},
],
},
plugins: [
new DefinePlugin( {
Expand All @@ -85,6 +136,7 @@ module.exports = function( env = { environment: 'production', watch: false, buil
} ),
new DependencyExtractionPlugin( {
injectPolyfill: false,
useDefaults: false,
} ),
new CopyWebpackPlugin( {
patterns: [
Expand Down
2 changes: 1 addition & 1 deletion tools/webpack/packages.js
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ module.exports = function( env = { environment: 'production', watch: false, buil
buildTarget = buildTarget + '/wp-includes';

const WORDPRESS_NAMESPACE = '@wordpress/';
const BUNDLED_PACKAGES = [ '@wordpress/icons', '@wordpress/interface' ];
const BUNDLED_PACKAGES = [ '@wordpress/icons', '@wordpress/interface', '@wordpress/interactivity' ];
const packages = Object.keys( dependencies )
.filter( ( packageName ) =>
! BUNDLED_PACKAGES.includes( packageName ) &&
Expand Down