Kesalahan Setelah Upgrade dari EXTJS 4.2 ke EXTJS 6.x

Sejauh ini, saya telah melakukan peningkatan dengan dua cara:

1) Saya menyiapkan sencha app generate [appName] baru dan mentransfer file dan direktori 4.2 ke 6.x. Setelah mengaturnya, terjadi kesalahan saat melakukan sencha app build:

The following error occurred while executing this line:
/var/www/html/backoffice-test/EcommBackoffice/.sencha/app/build-impl.xml:381: The following error occurred while executing this line:
/var/www/html/backoffice-test/EcommBackoffice/.sencha/app/init-impl.xml:382: com.sencha.exceptions.ExNotFound: Unknown definition for dependency : Ext.ux.grid.filters.Filters
rareyes@MAKDL-RAREYES:/var/www/html/backoffice-test/EcommBackoffice$

Bersamaan dengan ini, saat memuat aplikasi, kesalahan konsol menampilkan baris berikut:

http://localhost:1841/EcommBackoffice/Overrides/view/Table.js?_dc=1452581765612`
http://localhost:1841/EcommBackoffice/Overrides/selection/Model.js?_dc=1452581765612`
[E] [Ext.Loader] Some requested files failed to load.
[E] [Loader] The following classes failed to load:
[E] [Loader] Overrides.view.Table from Overrides/view/Table.js
[E] [Loader] Overrides.selection.Model from Overrides/selection/Model.js
[E] [Loader] EcommBackoffice.Application from app/Application.js

2) Karena terjebak pada yang pertama, pendekatan kedua saya adalah melakukan sencha app upgrade -ext pada aplikasi yang ada. Itu berhasil diperbarui kecuali ketika melakukan sencha app build itu memberikan kesalahan serupa seperti:

The following error occurred while executing this line:
/var/www/html/backoffice-2.0/src/main/webapp/.sencha/app/build-impl.xml:381: The following error occurred while executing this line:
/var/www/html/backoffice-2.0/src/main/webapp/.sencha/app/init-impl.xml:382: com.sencha.exceptions.ExNotFound: Unknown definition for dependency : Ext.ux.grid.FiltersFeature

dan kesalahan konsol singkat: Uncaught ReferenceError: Ext is not defined

Ini terjadi ketika saya mengedit index.html dan mengganti cuplikan x-compile:

<!-- <x-compile> -->

<!-- <x-bootstrap> -->
<link rel="stylesheet" href="/idbootstrap.css">
<script src="ext/ext-all-debug-w-comments.js"></script>
<script src="bootstrap.js"></script>
<!-- </x-bootstrap> -->
<script src="app.js"></script>

<!-- </x-compile> -->

untuk ini:

<script id="microloader" data-app="a32fd6d2-db0c-4c4b-a6a2-4185b3ee3fd4" type="text/javascript" src="bootstrap.js"></script>

Sebelum mengedit index.html, kesalahan berbeda terjadi dengan x-compile:

/.sencha/app/init-impl.xml:382: com.sencha.exceptions.ExBuild: Mixed-Mode x-compile and microload markup is currently unsupported

Inilah alasan mengapa saya memilih Microloader yang didukung yang disediakan oleh 6.x

Saya agak tersesat di sini. ExtJS tampaknya tidak memiliki panduan Sencha yang tepat untuk meningkatkan langsung dari 4.x ke 6.x. Ia hanya melakukan peningkatan satu langkah lebih tinggi seperti 4.x ke 5.x, dan 5.x ke 6.x. Meski begitu, panduannya tidak terlalu jelas dan IMHO kurang dokumentasinya.

Adakah yang bisa menunjukkan di mana masalahnya dengan kesalahan yang saya berikan?


person ralphcarlo    schedule 12.01.2016    source sumber
comment
Untuk masalah Beberapa file yang diminta gagal dimuat, buka konsol dan jalankan baris ini --› Ext.Loader.missingQueue dan coba cari tahu mengapa penggantian nama file tidak dimuat.. Ext.Loader.missingQueue akan memberi Anda antrian persis dari file yang tersisa   -  person Abhijit Muke    schedule 12.01.2016


Jawaban (1)


Nah, pesan kesalahan Cmd mengatakannya dengan jelas dan jelas:

Unknown definition for dependency : Ext.ux.grid.filters.Filters

Ini berarti ExtJS6 tidak menyediakan Ext.ux.grid.filter.Filters, yang diperlukan di suatu tempat di aplikasi Anda.

Seperti yang dinyatakan dalam dokumentasi Ext, segala sesuatu dari namespace Ext.ux tidak aman untuk diupgrade, karena konten yang disediakan penggunalah yang menurut Sencha berguna dan ditambahkan ke file zip Ext. Biasanya, Anda hanya perlu mencari di internet untuk mengetahui implementasi ExtJS 6.0.x yang tersedia dari fitur ux yang tidak ada di file zip resmi; atau tulis sendiri.

Namun untuk kasus khusus Anda, saya yakin mereka memindahkan gridfilters dari ux ke cabang resmi di ExtJS 4.2.x, lalu menghapus alias di ExtJS 5, dan terakhir, di ExtJS 6, mereka mengganti fitur tersebut dengan sebuah plugin.

Jadi silakan lihat Ext.grid.filters.Filters, Saya yakin ini memenuhi kebutuhan Anda, namun Anda harus menulis ulang sebagian kode untuk dapat menggunakannya. (ubah persyaratan, pindahkan referensi dari fitur ke plugin, mungkin memperhitungkan perubahan lainnya.)

Saya pikir pesan kesalahan kedua ("[E] [Ext.Loader] Beberapa file yang diminta gagal dimuat.") artinya sama dengan yang pertama, dan saya mengharapkan sesuatu seperti requires:['Ext.ux.grid.filters.Filters'] di Overrides/view/Table.js. (Overrides.selection.Model tidak dimuat karena memerlukan Overrides.view.Table, dan EcommBackoffice.Application tidak dimuat karena merujuk pada Overrides.selection.Model)

person Alexander    schedule 12.01.2016