Помилки JS Magento 2


11

Я намагався щось закінчити і опублікувати в Інтернеті цілі вихідні, це щось настільки зламано, і я не маю поняття, чому так, сподіваюся, хтось може мені допомогти.

Я намагався додати користувальницьку jQuery у свою власну тему, з успіхом, коли jQuery був завантажений і функція працювала. Однак! Це не працювало належним чином. Наприклад, Safari не завантажував jQuery, і я продовжував отримувати ці помилки в консолі:

defaultCaptcha.js: 29 Uncaught TypeError: Неможливо прочитати властивість 'captcha' невизначеної автентифікації-popup.js: 26 Uncaught TypeError: Неможливо прочитати властивість 'autocomplete' undefined (анонімна функція)

Я думав, що це має щось спільне з тим, як я оголосив свій jQuery, але коли це, мабуть, не відбулося, я вирішив видалити всі свої власні JS, і я все-таки отримав ці помилки. Щось, здається, порушено далі, я здогадуюсь.

Моя користувальницька "Тема" - це просто проста цільова сторінка, в якій немає нічого іншого, ніж я власна підписка.

Що може викликати ці помилки ??


3
Для майбутніх службовців Google це відома проблема, яку відслідковують у GitHub github.com/magento/magento2/isissue/8532
— tim.baker

Відповіді:


15

Замініть модуль клієнта у файлі аутентифікації-popup.js:

autocomplete: window.checkout.autocomplete

з:

autocomplete: ((window.checkout && window.checkout.autocomplete) ? window.checkout.autocomplete : null),

Після оновлення запуску

Налаштування php bin / magento: статичний контент: розгортання


Оновлення

Проблема може бути вирішена в нових версіях: https://github.com/magento/magento2/blob/2.3-develop/app/code/Magento/Customer/view/frontend/web/js/view/authentication-popup.js # L23

autocomplete: window.checkout.autocomplete,

було замінено на:

autocomplete: window.authenticationPopup.autocomplete,

Це оновлення є інформативним та не забезпечує повного рішення, оскільки новіші Magento 2 версії мають інші зміни.

Ось перелік, який змінився в цьому: https://github.com/magento/magento2/commit/362f62f3c9b6c2994070615d82efbdf19f15fe50


Ми спробували це рішення і досі спостерігаємо помилку, навіть після запуску setup: upgrade, di: compile, static-content: розгортання, кеш: clean та кеш: flush команд. Будь-які інші пропозиції?
— codestr

Це повинно піти. Перевірте, чи є зміна в браузері у файлі аутентифікації-popup.js (проблема кешу браузера). Також подивіться, чи цей файл не буде перезаписаний іншим файлом із розширення, точніше, дізнайтеся, чи помилка надходить із вказаного файлу JS чи іншого.
— незрозумілий

Трасування стека вказує на файл автентифікації-popup.js, і розширення / модулі, що перезаписали його, не можу знайти. Я також подумав, що, можливо, це питання кешу, але і там не пощастило. Я впевнений, що це, мабуть, щось просте, що я не помічаю, я зрозумію, зрештою, хаха.
— codestr

Я спробував це рішення, помилка пішла, але я взагалі не знаю, як виправити, чи залишаю я її у постачальника (з коментарем todo) до наступного оновлення версії magento? хтось має рекомендацію?
— medmek

1
@medmek Ви можете створити патч git / diff як виправлення основних файлів. Підприємство Magento використовує його тут: devdocs.magento.com/guides/v2.2/cloud/project/…
— незрозуміло

1

Після перезавантаження файлів з ядра вам потрібно очистити кеш статичних файлів (навіть якщо всі кеші вимкнено для режиму за замовчуванням), щоб побачити ефект. Ніколи не редагуйте файли pub / static / frontend, оскільки вони створюються файлами.


0

Схоже, помилка викликана посиланням на автозаповнення, а captcha не існує, коли вони повинні. Виконуючи те, що незрозуміло, видалили помилку для автозаповнення. Мені довелося редагувати файл captcha за замовчуванням на ... / pub / static / frontend / Magento / luma / en_US / Magento_Captcha / js / view / checkout / defaultCaptcha.js

повернути null, якщо не існує конфігурації, на яку вона намагається посилатися. Однак це видаляє лише помилку, але сторінка оформлення замовлення все ще порожня.

Я підозрюю, що це може мати відношення до того, що тема не відходить належним чином.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.