Я пытаюсь переопределить файл js в кассе magento2.
Я хочу переопределить /vendor/magento/module-checkout/view/frontend/web/js/view/form/element/email.js
.
Итак, я скопировал файл из моего модуля в:
/app/code/GMyself/Test/view/frontend/web/js/view/form/element/email.js
Я сделал небольшое изменение в /app/code/GMyself/Test/view/frontend/web/js/view/form/element/email.js
:
/**
* Callback on changing email property
*/
emailHasChanged: function () {
var self = this;
clearTimeout(this.emailCheckTimeout);
if (self.validateEmail()) {
quote.guestEmail = self.email();
checkoutData.setValidatedEmailValue(self.email());
$.cookie("checkoutemail", self.email()); // <--- this is the change
}
this.emailCheckTimeout = setTimeout(function () {
if (self.validateEmail()) {
self.checkEmailAvailability();
} else {
self.isPasswordVisible(false);
}
}, self.checkDelay);
checkoutData.setInputFieldEmailValue(self.email());
},
Другие части файла не изменены.
Затем я создал /app/code/GMyself/Test/view/frontend/requirejs-config.js
:
var config = {
map: {
'*':
{
'Magento_Checkout/js/view/form/element/email.js':'GMyself_Test/js/view/form/element/email.js'
}
}
};
Я выполнил следующие команды в этом порядке после внесения изменений в код или переустановки модуля:
sudo mv pub/static pub/static_backup_`date +%Y%m%d_%H%m%S`
sudo /opt/local/bin/php71 -d memory_limit=4G ./bin/magento cache:flush
sudo /opt/local/bin/php71 -d memory_limit=4G ./bin/magento setup:upgrade;
sudo /opt/local/bin/php71 -d memory_limit=4G ./bin/magento cache:flush
sudo /opt/local/bin/php71 -d memory_limit=4G ./bin/magento setup:di:compile
Мой Magento находится в режиме разработчика, поэтому мне не нужно делать setup:static-content:deploy
. Но я также попытался с помощью команды deploy (с опцией -f
).
Файл генерируется в pub/static/frontend/Magento/luma/en_US/GMyself_Test/js/view/form/element/email.js
.
При оформлении покупки загружается оригинальный файл, мой собственный email.js не загружается и отсутствует в локальных ресурсах моего браузера (как я проверял в моей Chrome Dev-Console).
Глобальный сгенерированный requirejs-config.js, который загружает мой chrome, содержит записи, которые я сделал в моем /app/code/GMyself/Test/view/frontend/requirejs-config.js
.
У меня нет ошибок в консоли браузера.
В качестве небольшого теста я также попытался переопределить /vendor/magento/module-checkout/view/frontend/web/js/checkout-data.js
следующей записью в requirejs-config.js
:
var config = {
"map": {
'*':
{
checkoutData: 'GMyself_Test/js/checkout-data.js'
}
}
};
checkout-data.js
был обнаружен здесь:
/app/code/GMyself/Test/view/frontend/web/js/checkout-data.js
.
Результат был таким же, как и в файле email.js.