Cum să eviți dependențele duplicate în blocurile Gutenberg
Scriptul de construire a blocurilor Gutenberg din WordPress utilizează wordpress/dependency-extraction-webpack-plugin pentru a construi blocurile fără a repeta dependențele WordPress, dar cum rămâne cu celelalte dependențe?
Dacă construiesc un plugin cu 10 blocuri și toate utilizează aceleași dependențe, scriptul de construire WordPress va încorpora dependența în fiecare bundle de bloc.
Există o metodă bună de a gestiona această situație fără a fi nevoit să recreez manual procesul de build Webpack?

Plugin-ul WordPress pentru extragerea dependențelor @wordpress/dependency-extraction-webpack-plugin
face ca importurile de dependențe ES6 să folosească scripturile WordPress în loc să le adauge repetat în bundle.
Acest lucru permite modulelor înregistrate și înscrise în WordPress (inclusiv, dar fără a se limita la jquery
, moment
, react
și modulele wp.*
) să fie excluse corect din build-uri.
Puteți adăuga dependințe suplimentare pentru a fi excluse (asigurați-vă că le înregistrați/încărcați în WordPress) cu ajutorul callback-ului requestToHandle
.
De exemplu, pentru a exclude componenta react-sortable
din build, înregistrată ca script react-sortable
în WordPress (PHP),
module.exports = {
plugins: [
new DependencyExtractionWebpackPlugin( {
requestToHandle: function ( module ) {
if ( module === 'react-sortable' ) {
return 'react-sortable'; // Handle-ul scriptului WordPress
}
}
} ),
]
}

Unde adaugi asta? Folosesc wp-scripts build
pentru build. Configurația webpack este ascunsă.
