Angular-google-maps: Dukungan Sudut 6

Dibuat pada 24 Apr 2018  ·  24Komentar  ·  Sumber: SebastianM/angular-google-maps

Deskripsi masalah

Saat ini paket ini membutuhkan @angular/common@^4.0.0 || ^5.0.0 dan @angular/core@^4.0.0 || ^5.0.0 . Saya pikir perubahannya tidak begitu relevan, jadi mungkin migrasi untuk mendukung angular 6 itu mudah.

Masalah utama yang saya temukan adalah tentang perubahan RxJS ke v6.0.0, di mana beberapa modul mengubah jalurnya, jadi kami perlu memperbaruinya.

Mungkin juga perlu rilis versi 2.0.0, karena ada banyak perubahan yang mengganggu pada dependensi paket

Komentar yang paling membantu

Saya memecahkan masalah saya melalui menginstal
npm install rxjs<strong i="6">@6</strong> rxjs-compat<strong i="7">@6</strong> --save

seperti yang dijelaskan https://github.com/ReactiveX/rxjs/blob/master/MIGRATION.md

Peta agm rusak dengan RXJS 6 dan memerlukan modul kompatibilitas untuk kompatibilitas mundur

Semua 24 komentar

Di sini untuk komentar

Hai,

Baru saja mencoba menjalankan proyek saya, ini adalah kesalahan terkait:

node_modules/@agm/core/services/google-maps-api-wrapper.d.ts(2,10): error TS2305: Module '"my-project/node_modules/rxjs/Observable"' has no exported member 'Observable'.
node_modules/@agm/core/services/managers/circle-manager.d.ts(2,10): error TS2305: Module '"my-project/node_modules/rxjs/Observable"' has no exported member 'Observable'.
node_modules/@agm/core/services/managers/data-layer-manager.d.ts(2,10): error TS2305: Module '"my-project/node_modules/rxjs/Observable"' has no exported member 'Observable'.
node_modules/@agm/core/services/managers/info-window-manager.d.ts(1,10): error TS2305: Module '"my-project/node_modules/rxjs/Observable"' has no exported member 'Observable'.
node_modules/@agm/core/services/managers/kml-layer-manager.d.ts(2,10): error TS2305: Module '"my-project/node_modules/rxjs/Observable"' has no exported member 'Observable'.
node_modules/@agm/core/services/managers/marker-manager.d.ts(2,10): error TS2305: Module '"my-project/node_modules/rxjs/Observable"' has no exported member 'Observable'.
node_modules/@agm/core/services/managers/polygon-manager.d.ts(2,10): error TS2305: Module '"my-project/node_modules/rxjs/Observable"' has no exported member 'Observable'.
node_modules/@agm/core/services/managers/polyline-manager.d.ts(2,10): error TS2305: Module '"my-project/node_modules/rxjs/Observable"' has no exported member 'Observable'.
"@agm/core": "^1.0.0-beta.2",
"@angular/*": "6.0.0",
"rxjs": "^6.1.0",
"typescript": "2.7.2"

Saya memecahkan masalah saya melalui menginstal
npm install rxjs<strong i="6">@6</strong> rxjs-compat<strong i="7">@6</strong> --save

seperti yang dijelaskan https://github.com/ReactiveX/rxjs/blob/master/MIGRATION.md

Peta agm rusak dengan RXJS 6 dan memerlukan modul kompatibilitas untuk kompatibilitas mundur

Saya masih memiliki masalah dengan "snazzy-info-window" setelah peningkatan Angular 6.
core.js:1601 ERROR Error: Uncaught (in promise): TypeError: elems[0] is not a constructor TypeError: elems[0] is not a constructor at snazzy-info-window.js:130 at ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (zone.js:388) at Object.onInvoke (core.js:4071) at ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (zone.js:387) at Zone.push../node_modules/zone.js/dist/zone.js.Zone.run (zone.js:138) at zone.js:872 at ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask (zone.js:421) at Object.onInvokeTask (core.js:4062) at ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask (zone.js:420) at Zone.push../node_modules/zone.js/dist/zone.js.Zone.runTask (zone.js:188) at snazzy-info-window.js:130 at ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (zone.js:388) at Object.onInvoke (core.js:4071) at ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (zone.js:387) at Zone.push../node_modules/zone.js/dist/zone.js.Zone.run (zone.js:138) at zone.js:872 at ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask (zone.js:421) at Object.onInvokeTask (core.js:4062) at ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask (zone.js:420) at Zone.push../node_modules/zone.js/dist/zone.js.Zone.runTask (zone.js:188) at resolvePromise (zone.js:814) at resolvePromise (zone.js:771) at zone.js:873 at ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask (zone.js:421) at Object.onInvokeTask (core.js:4062) at ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask (zone.js:420) at Zone.push../node_modules/zone.js/dist/zone.js.Zone.runTask (zone.js:188) at drainMicroTaskQueue (zone.js:595)

Dan saya juga mendapatkan pesan peringatan ini:
client?719c:153 ./node_modules/@agm/snazzy-info-window/directives/snazzy-info-window.js System.import() is deprecated and will be removed soon. Use import() instead. For more info visit https://webpack.js.org/guides/code-splitting/

Hati-hati dengan penggunaan paket rxjs-compat , karena ini hanya solusi dan akan menambah banyak biaya untuk proyek Anda. Sekarang diperlukan karena banyak paket seperti ini yang belum ditingkatkan ke RxJS 6, tetapi hapus sesegera mungkin.

@epenance melakukan pekerjaan yang bagus dengan memperbarui paket ke [email protected] , tapi saya pikir sebelum membuatnya sepenuhnya kompatibel dengan Angular6, perlu memeriksa setiap perubahan yang melanggar.

@ukon1990 angular 6 beralih untuk menggunakan webpack 4, yang mengubah perilaku saat mengimpor modul commonjs secara dinamis. Saya tidak tahu mengapa tetapi arahan snazzy-info-window menggunakan perpustakaan snazzy-info-window impor dinamis, itu sebabnya ada satu peringatan dan arahan snazzy-info-window yang rusak. Untuk memperbaikinya https://github.com/SebastianM/angular-google-maps/blob/1a74b3a9670cf4dbf442033a17dea290dfadc408/packages/snazzy-info-window/directives/snazzy-info-window.ts#L228
harus diubah menjadi this._nativeSnazzyInfoWindow = new elems[0].default(options); tetapi ini bukan solusi kompatibilitas mundur (tidak akan berfungsi di angular5/webpack3). Saya tidak tahu bagaimana memperbaikinya dengan benar.

Saya cukup yakin @SebastianM hanya perlu menabrak paket satu versi utama karena Angular 6 merusak banyak hal di compat mundur.

@Epenance ya, itulah yang mungkin harus saya lakukan, yang sedikit mengganggu karena saya harus mengelola dua cabang (karena terlalu sedikit orang yang akan menggunakan v6 dalam waktu dekat).

angular-google-maps berfungsi dengan baik di v6 dengan rxjs-compat (kecuali komentar @iget-master), tetapi arahan snazzy-info-window benar-benar rusak sekarang. Mungkin cara paling sederhana adalah mengubah impor dinamis menjadi statis.

@SebastianM Anda bisa untuk saat ini:

  • Tingkatkan paket AGM ke RXJS6+RXJSCompat
  • Mari kita lepaskan RXJSCompat

Semua orang harus bahagia bukan?

@SebastianM tentang dua cabang, ada juga ngx-translate cara untuk memutakhirkan, satu cabang tunggal, rilis terakhir hanya kompatibel dengan v6, tidak ada kompatibilitas mundur sudut

tidak mengatakan itu benar-benar caranya, hanya ingin menunjukkan bahwa perpustakaan besar lainnya (dalam hal unduhan bulanan) memilih jalur seperti itu

@jimmykane tidak, karena rxjs 6 tidak kompatibel dengan sudut 4/5. Saya pikir ada solusi...PR akan datang

@peterpeterparker Saya pikir masuk akal untuk mendukung dua versi terbaru, yang sekarang bersudut 5/6 dan saya menemukan cara yang kompatibel ke belakang (yang bahkan seharusnya berfungsi dengan sudut 4 untuk saat ini tetapi saya akan menandai versi berikutnya dengan dukungan untuk sudut 5/ 6) - Tapi senang untuk mendiskusikannya lebih lanjut

@SebastianM jangan khawatir sama sekali, hanya ingin membawa info, saya senang dengan cara apa pun karena saya sudah memigrasikan situs web saya ke v6

IMO, karena migrasi ke Angular 6 hampir tanpa rasa sakit (setidaknya pada proyek kami), saya tidak melihat alasan untuk mempertahankan versi untuk 4 dan 5. Berikan saja perbaikan keamanan yang berbahaya.

@SebastianM benar-benar membutuhkannya untuk ditingkatkan secara asli

Apakah kami akan memiliki rilis stabil untuk dukungan Angular 6? Bekerja dengan baik dengan rxjs-compat, tetapi saya ingin menghapusnya secepatnya

Hei..ada update tentang ini?

Oh! Saya baru saja memutakhirkan ke Angular 6 dan saya memiliki masalah pada jendela info-Snazzy yang Anda diskusikan:

Kesalahan: Tidak tertangkap (dalam janji): TypeError: elems[0] bukan konstruktor
TypeError: elems[0] bukan konstruktor
di snazzy-info-window.js:130

Apakah Anda punya ide bagaimana memperbaikinya?

Terima kasih!

@manuelsanchezaponte untuk saat ini, solusi @john-hi berfungsi, ubah baris 130 menjadi _this._nativeSnazzyInfoWindow = new elems[0].default(options); di node_modules/@agm/snazzy-info-window/directives/snazzy-info-window.js . Ini adalah solusi sementara sementara paket mendukung angular 6.

@LordShiroe benar yang tampaknya merupakan perbaikan cepat. AGM adalah pemblokir terakhir untuk meningkatkan ke v6.

Terima kasih @SebastianM, terima kasih atas perbaikan cepatnya! bekerja seperti pesona. 🥇.

Wah kamu penguji cepat :D senang itu berhasil

@SebastianM terima kasih banyak 👍

Apakah halaman ini membantu?
0 / 5 - 0 peringkat

Masalah terkait

alexweber picture alexweber  ·  4Komentar

shedar picture shedar  ·  4Komentar

marcelinobadin picture marcelinobadin  ·  3Komentar

gizm0bill picture gizm0bill  ·  4Komentar

nthonymiller picture nthonymiller  ·  4Komentar