Come evitare dipendenze duplicate nei blocchi Gutenberg
Lo script di build dei blocchi Gutenberg di WordPress utilizza wordpress/dependency-extraction-webpack-plugin per costruire i blocchi senza ripetere le dipendenze di WordPress, ma cosa succede con le altre dipendenze?
Se creo un plugin con 10 blocchi che riutilizzano le stesse dipendenze, lo script di build di WordPress incorporerà la dipendenza in ogni bundle dei blocchi.
Esiste un modo efficace per gestire questa situazione senza dover ricreare manualmente il build di webpack?

Il plugin di estrazione delle dipendenze per WordPress @wordpress/dependency-extraction-webpack-plugin
fondamentalmente fa sì che le tue importazioni di dipendenze ES6 utilizzino gli script di WordPress invece di aggiungerle ripetutamente al bundle.
Ciò consente ai moduli registrati e accodati in WordPress (inclusi ma non limitati a jquery
, moment
, react
e i moduli wp.*
) di essere correttamente esclusi dai build.
Puoi aggiungere ulteriori dipendenze da escludere (assicurati di registrarle/accodarle in WordPress) utilizzando il callback requestToHandle
.
Ad esempio, per escludere il componente react-sortable
dal build registrato come script react-sortable
in WordPress (PHP),
module.exports = {
plugins: [
new DependencyExtractionWebpackPlugin( {
requestToHandle: function ( module ) {
if ( module === 'react-sortable' ) {
return 'react-sortable'; // Handle dello script WordPress
}
}
} ),
]
}

Dove si aggiunge questo? Sto usando wp-scripts build
per la compilazione. La configurazione di webpack è nascosta.
