Помилки 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.