Sé cómo usar require-config.js
un tema personalizado, pero me gustaría usar un archivo javascript personalizado ( myfile.js
) en todas las páginas. ¿En qué directorio debo agregar require-config.js
y cómo usarlo, para que funcione como debería?
Por favor, no haga referencia a la página oficial de Magento.
magento2
javascript
requirejs
Anitr
fuente
fuente
Respuestas:
requirejs-config.js
utiliza para crear la asignación de recursos de JavaScript . Podemos encontrar todos requieren configuraciones en:pub/static/_requirejs
.Hasta donde sé, la forma correcta de cargar nuestro script personalizado a través de Require Js: usando la plantilla para llamar a nuestro script . Crearemos una nueva plantilla con
Magento\Framework\View\Element\Template
su clase de bloque.Si queremos cargar archivos js en todas las páginas y no queremos crear un nuevo módulo, nuestro bloque debe hacer referencia al módulo Tema de Magento
before.body.end
oafter.body.start container
en éldefault.xml
.app / design / frontend / Vendor / Theme / Magento_Theme / layout / default.xml
app / design / frontend / Vendor / Theme / requirejs-config.js
app / design / frontend / Vendor / Theme / Magento_Theme / web / js / customcript.js
Nuestra plantilla llamará a nuestro script: app / design / frontend / Vendor / Theme / Magento_Theme / templates / custom_js.phtml
Borre Magento Cache y ejecute la implementación de contenido estático:
php bin/magento setup:static-content:deploy
fuente
\app\design\frontend\Enim\blank\Magento_CatalogWidget\templates\product\widget\content\grid.phtml
Invoco mi script , pero tengo requirejs-config.js y script en la carpeta Theme (app / design / frontend / Vendor / Theme / requirejs-config.js). ¿Esta bien? El problema es que llamo a mi script desde múltiples lugares diferentes.templates\product\widget\content\grid.phtml
se llama a la plantilla .custom_js.phtml
se trata como una devolución de llamada normal, realizada después de la ejecución del código que contienecustomscript.js
? ¿O necesitaría ejecutar el código declaradocustomscript.js
desde dentro de la función encustom_js.phtml
?after.body.start
debería cambiarse abefore.body.end
.Archivo requirejs-config: app / code / Vendor / Module / view / frontend / requirejs-config.js
Su archivo js debe estar en: app / code / Vendor / Module / view / frontend / web / js / myfile.js
Ahora puede usar cualquier parte de su archivo de plantilla con el siguiente método:
fuente
Hay una versión más fácil de usar
deps
. Las dependencias en requirejs-config.js cargarán su archivo al cargar requirejs (en todas partes de la tienda). Aquí hay un ejemplo de cómo debería verse su requirejs-config.js :fuente
Como un enfoque alternativo a la recomendación de Khoa, que es una excelente práctica de desarrollo de Magento, puede pegar su JavaScript en un archivo .phtml como este:
Luego vincule su archivo phtml de default.xml como se describe en la respuesta de Khoa, aunque recomendaría agregarlo a before.body.end. Y luego llame a su script JS desde copyright.phtml , de esta manera:
copyright.phtml se carga en cada página, incluso en páginas como el pago, donde se omite el pie de página.
fuente