Post ensinando a como adicionar um arquivo Javascript em todas as páginas por meio de um módulo no Magento 2.
Antes de qualquer coisa coloque o Magento no módulo desenvolvedor.
php bin/magento deploy:mode:set developer
Desabilite também o Cache.
php bin/magento cache:disable
Criando a estrutura do módulo
Primeiro crie a seguinte estrutura de pastas em app/code:
Rogertakemiya/Custom
Rogertakemiya/Custom/etc
Rogertakemiya/Custom/view
Rogertakemiya/Custom/view/frontend
Rogertakemiya/Custom/view/frontend/web
Rogertakemiya/Custom/view/frontend/web/js
No diretório Rogertakemiya/Custom/
Crie o arquivo: registration.php
Conteúdo:
<?php use Magento\Framework\Component\ComponentRegistrar; $name = implode('_', array_map( function($part) { return implode(array_map('ucfirst', explode('-', $part))); }, array_slice(explode(DIRECTORY_SEPARATOR, __DIR__), -2, 2) )); ComponentRegistrar::register(ComponentRegistrar::MODULE, $name, __DIR__);
Diretório Rogertakemiya/Custom/etc
Vamos criar o arquivo module.xml
<?xml version="1.0"?> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd"> <module name="Rogertakemiya_Custom" setup_version="1.0.0"> </module> </config>
Diretório Rogertakemiya/Custom/view/frontend/web
Adicione o arquivo: requirejs-config.js
var config = { map: { '*': { mask: 'Rogertakemiya_Custom/js/custom' } } };
Diretório Rogertakemiya/Custom/view/frontend/web/js
Criamos o arquivo custom.js com seguinte conteúdo:
require([ 'jquery' ], function ($) { alert("hello"); });
No arquivo custom.js você poderá incluir o seu código Javascript, repare que adicionei como dependência a lib jQuery.
Após a criação da estrutura de pasta com os arquivos execute o comando:
php bin/magento setup:upgrade
Se tudo estiver Ok o arquivo Javascript já deverá estar sendo carregado no frontend.
Não é necessário executar o deploy, pois ela está em modo de desenvolvimento.
Este tutorial é bem simples, para iniciantes, qualquer dúvida, por favor fique a vontade para entrar em contato.