Kesalahan JS Magento 2

11

Saya sudah mencoba untuk menyelesaikan sesuatu dan mempublikasikannya secara online sepanjang akhir pekan ini, ini agak rusak dan saya tidak tahu mengapa jadi saya berharap seseorang dapat membantu saya.

Saya sudah mencoba menambahkan jQuery kustom ke tema kustom saya, dengan sukses karena jQuery dimuat dan fungsinya bekerja. Namun! Itu tidak berfungsi dengan baik. Misalnya Safari tidak akan memuat jQuery dan saya terus mendapatkan kesalahan ini di konsol saya:

defaultCaptcha.js: 29 Uncaught TypeError: Tidak dapat membaca properti 'captcha' dari otentikasi-popup.js: 26 Unreught TypeError: Tidak dapat membaca properti 'autocomplete' dari undefined (fungsi anonim)

Saya pikir itu ada hubungannya dengan cara saya menyatakan jQuery saya, tetapi ketika itu tampaknya tidak terjadi, saya memutuskan untuk menghapus semua JS kustom saya, dan saya masih mendapatkan kesalahan ini. Sepertinya ada sesuatu yang rusak lebih lanjut.

'Tema' Kustom saya hanyalah halaman arahan sederhana dengan tidak lebih dari kotak langganan kustom saya.

Apa yang bisa menyebabkan kesalahan ini ??

magin
sumber
3
Untuk Googler masa depan, ini adalah masalah yang diketahui dan dilacak di GitHub github.com/magento/magento2/issues/8532
tim.baker

Jawaban:

15

Ganti dalam modul pelanggan dalam otentikasi file-popup.js:

autocomplete: window.checkout.autocomplete

dengan:

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

Setelah diperbarui jalankan

setup php bin / magento: static-content: deploy


Memperbarui

Masalah ini dapat diperbaiki di versi yang lebih baru: 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,

diganti dengan:

autocomplete: window.authenticationPopup.autocomplete,

Pembaruan ini informatif dan tidak memberikan solusi lengkap karena versi Magento 2 yang lebih baru datang dengan perubahan lain.

Berikut adalah komit yang diubah menjadi ini: https://github.com/magento/magento2/commit/362f62f3c9b6c2994070615d82efbdf19f15fe50

mengaburkan
sumber
Kami telah mencoba solusi ini, dan masih melihat ada kesalahan, bahkan setelah menjalankan pengaturan: pemutakhiran, di: kompilasi, konten statis: deploy, cache: clean dan cache: flush commands. Ada saran lain?
codestr
Itu harus pergi. Lihat apakah perubahan ada di browser di otentikasi file-popup.js (masalah cache browser). Juga lihat apakah file ini tidak ditimpa oleh file lain dari ekstensi, lebih tepatnya melihat apakah kesalahan berasal dari file JS yang ditentukan atau yang lain.
tidak jelas
Jejak tumpukan menunjuk kembali ke file otentikasi-popup.js, dan tidak ada ekstensi / modul menimpa itu yang dapat saya temukan. Saya juga berpikir mungkin itu adalah masalah cache, tetapi juga belum beruntung. Saya yakin itu mungkin sesuatu yang sederhana yang saya abaikan, saya akan mencari tahu akhirnya lol.
codestr
Saya sudah mencoba solusi ini kesalahannya hilang tetapi saya tidak tahu secara umum cara menambal, apakah saya meninggalkannya di vendor (dengan komentar todo) sampai pembaruan versi magento kami berikutnya? apakah ada yang punya rekomendasi?
medmek
1
@medmek Anda dapat membuat tambalan git / diff sebagai perbaikan pada file inti. Magento enterprise menggunakannya di sini: devdocs.magento.com/guides/v2.2/cloud/project/…
obscure
1

Setelah menimpa file dari inti Anda harus membersihkan cache file statis (bahkan jika semua cache dinonaktifkan untuk mode default) untuk melihat efeknya. Jangan pernah mengedit file pub / static / frontend karena mereka adalah file yang dihasilkan.

pengguna3127632
sumber
0

Sepertinya kesalahan disebabkan oleh referensi ke pelengkapan otomatis dan captcha tidak ada saat seharusnya. Melakukan apa yang tidak jelas menghapus kesalahan untuk pelengkapan otomatis. Saya harus mengedit file captcha default di ... / pub / static / frontend / Magento / luma / en_US / Magento_Captcha / js / view / checkout / defaultCaptcha.js

untuk mengembalikan nol jika konfigurasi yang mencoba referensi tidak ada. Namun, itu hanya menghilangkan kesalahan, tetapi halaman checkout masih kosong.

Saya menduga itu mungkin ada hubungannya dengan tema tidak jatuh kembali dengan benar.

frostshoxx
sumber