Ng-lazyload-image: Tidak dapat membaca 'jenis' properti yang tidak terdefinisi - Aplikasi Universal Angular 7

Dibuat pada 26 Feb 2020  ·  28Komentar  ·  Sumber: tjoskar/ng-lazyload-image

Menginstal ng-lazyload-image kemarin dan mendapatkan kesalahan:

ERROR in ./node_modules/ng-lazyload-image/fesm5/ng-lazyload-image.js
Module build failed (from ./node_modules/@angular-devkit/build-optimizer/src/build-optimizer/webpack-loader.js):
TypeError: Cannot read property 'kind' of undefined
    at isAngularDecoratorMetadataExpression (C:\Users\Denis\Desktop\Projects\VPWebsite\node_modules\@angular-devkit\build-optimizer\src\transforms\scrub-file.js:265:35)
    at checkNodeForDecorators (C:\Users\Denis\Desktop\Projects\VPWebsite\node_modules\@angular-devkit\build-optimizer\src\transforms\scrub-file.js:77:21)
    at visitNodes (C:\Users\Denis\Desktop\Projects\VPWebsite\node_modules\@angular-devkit\build-optimizer\node_modules\typescript\lib\typescript.js:16144:30)
    at Object.forEachChild (C:\Users\Denis\Desktop\Projects\VPWebsite\node_modules\@angular-devkit\build-optimizer\node_modules\typescript\lib\typescript.js:16370:24)

saat berlari

sedang membangun --prod

tapi terlihat bagus dengan _ng serve_

Bisakah Anda membantu, saya telah berjuang dengannya selama lebih dari satu hari.

Ketergantungan saya untuk berjaga-jaga:
"dependencies": { "@angular/animations": "6.1.10", "@angular/cdk": "6.4.7", "@angular/common": "7.2.13", "@angular/compiler": "7.2.13", "@angular/core": "7.2.13", "@angular/forms": "7.2.13", "@angular/http": "7.2.13", "@angular/material": "6.4.7", "@angular/platform-browser": "7.2.13", "@angular/platform-browser-dynamic": "7.2.13", "@angular/platform-server": "7.2.13", "@angular/router": "7.2.13", "@ng-bootstrap/ng-bootstrap": "4.1.1", "@ng-select/ng-select": "2.17.0", "@ng-toolkit/pwa": "7.1.1", "@ng-toolkit/universal": "7.1.1", "@ngneat/content-loader": "^4.1.0", "@nguniversal/express-engine": "7.1.1", "@nguniversal/module-map-ngfactory-loader": "7.1.1", "@ngx-meta/core": "7.0.0", "@swimlane/ngx-charts": "^12.0.1", "ajv-keywords": "3.4.0", "angular2-yandex-maps": "1.0.42", "bootstrap": "4.3.1", "core-js": "2.6.5", "crypto": "1.0.1", "crypto-js": "^3.1.9-1", "ejs": "^1.0.0", "et-line": "1.0.1", "express": "^4.16.4", "font-awesome": "4.7.0", "fs": "0.0.1-security", "http": "0.0.0", "jquery": "3.4.0", "jsencrypt": "^3.0.0-rc.1", "mock-browser": "^0.92.14", "moment": "2.24.0", "net": "1.0.2", "ng-lazyload-image": "^7.1.0", "ng-sidebar": "8.0.0", "ng5-slider": "1.1.14", "ngx-daterangepicker-material": "1.3.4", "ngx-mat-daterange-picker": "1.1.4", "ngx-owl-carousel": "2.0.7", "owl.carousel": "2.3.4", "path": "0.12.7", "popper.js": "1.15.0", "rxjs": "6.4.0", "rxjs-compat": "6.4.0", "stream": "0.0.2", "webpack-bundle-analyzer": "3.3.2", "zlib": "1.0.5", "zone.js": "0.8.29" }, "devDependencies": { "@angular-devkit/build-angular": "0.13.9", "@angular/cli": "7.3.8", "@angular/compiler-cli": "7.2.13", "@angular/language-service": "7.2.13", "@types/jasmine": "2.8.16", "@types/jasminewd2": "2.0.3", "@types/node": "8.9.4", "codelyzer": "4.5.0", "http-server": "0.11.1", "jasmine-core": "2.99.1", "jasmine-spec-reporter": "4.2.1", "karma": "^4.3.0", "karma-chrome-launcher": "2.2.0", "karma-coverage-istanbul-reporter": "2.0.5", "karma-jasmine": "1.1.2", "karma-jasmine-html-reporter": "0.2.2", "protractor": "5.4.2", "ts-loader": "5.3.3", "ts-node": "7.0.0", "tslint": "5.11.0", "typescript": "3.1.1", "webpack-cli": "3.3.0" }

Komentar yang paling membantu

@Denis-Evseev, dapatkah Anda mencoba menurunkan versi lib ini ke versi 7.0.1 (hanya dengan mengatur edit:

- "ng-lazyload-image": "^7.1.0",
+ "ng-lazyload-image": "7.0.1",

dan jalankan npm install lagi?)

Saya hanya ingin tahu apakah masalah ini diperkenalkan di versi terbaru atau di versi sebelumnya

Semua 28 komentar

@Denis-Evseev, dapatkah Anda mencoba menurunkan versi lib ini ke versi 7.0.1 (hanya dengan mengatur edit:

- "ng-lazyload-image": "^7.1.0",
+ "ng-lazyload-image": "7.0.1",

dan jalankan npm install lagi?)

Saya hanya ingin tahu apakah masalah ini diperkenalkan di versi terbaru atau di versi sebelumnya

@tjoskar - "7.0.1" tidak menyelesaikan masalah, masih mendapatkan kesalahan yang sama.
Terima kasih

@tjoskar - ada ide?

Apa versi ng -cli yang Anda gunakan? Saya baru saja melakukan hal berikut:

❯ ng --version

     _                      _                 ____ _     ___
    / \   _ __   __ _ _   _| | __ _ _ __     / ___| |   |_ _|
   / △ \ | '_ \ / _` | | | | |/ _` | '__|   | |   | |    | |
  / ___ \| | | | (_| | |_| | | (_| | |      | |___| |___ | |
 /_/   \_\_| |_|\__, |\__,_|_|\__,_|_|       \____|_____|___|
                |___/


Angular CLI: 9.0.3
Node: 12.8.0
OS: darwin x64

Angular:
...
Ivy Workspace:

Package                      Version
------------------------------------------------------
@angular-devkit/architect    0.900.3
@angular-devkit/core         9.0.3
@angular-devkit/schematics   9.0.3
@schematics/angular          9.0.3
@schematics/update           0.900.3
rxjs                         6.5.3

❯ ng new my-app
❯ cd my-app
❯ ng build --prod
Your global Angular CLI version (9.0.3) is greater than your local
version (8.0.6). The local Angular CLI version is used.
...
build OK

# Adding ng-lazyload-image

❯ ng build --prod
Your global Angular CLI version (9.0.3) is greater than your local
version (8.0.6). The local Angular CLI version is used.
...
ERROR in ./node_modules/ng-lazyload-image/fesm5/ng-lazyload-image.js
Module build failed (from ./node_modules/@angular-devkit/build-optimizer/src/build-optimizer/webpack-loader.js):
TypeError: Cannot read property 'kind' of undefined
...

# Upgrade angular to version 9 so that Angular CLI and the local version match

❯ ng build --prod
# Build complete without warning or error

Saya mencari kesalahan di Google dan sepertinya itu bisa terjadi ketika cli dan versi Angular lokal tidak cocok. Apa output dari ng --version ?

Hai, kami mendapat masalah yang sama di Angular 8 ketika mencoba membuat file SSR.

ng-lazyload-image: 7.1.0

image

Memperbarui:
Menurunkan versi ke 7.0.1 berhasil untuk saya..

@RFreij , Apakah mungkin bagi Anda untuk menyelaraskan versi Angular CLI Anda dengan versi lokal Anda (sehingga peringatan itu hilang?). Misalnya. dengan memutakhirkan versi Angular lokal Anda ke 8.3.25 ?

@tjoskar itu adalah opsi kedua saya yang ingin saya coba setelah menurunkan versi. Tapi sepertinya menurunkan ke 7.0.1 sudah berhasil untuk saya.

Saya akan mencobanya dengan 7.1.0 dan dengan versi cli lokal yang sama untuk Anda. Hanya untuk mengesampingkannya

@tjoskar sayangnya memiliki versi cli lokal yang sama dengan global tidak berfungsi dengan v7.1.0

image

image

@tjoskar @RFreij - tidak ada ide tentang cara memperbaikinya?

@Denis-Evseev untuk saya, ini berhasil dengan menurunkan versi ke 7.0.1

Saya memiliki masalah yang sama. Menurunkan versi ke 7.0.1 tidak membantu saya

Downgrade ke 7.0.1 juga membantu saya :tada:

Saya tidak dapat mereproduksi ini tanpa menggunakan versi Angular CLI yang tidak cocok dengan versi lokal Angular. Adakah yang punya proyek di mana masalah ini dapat direproduksi, yang dapat Anda bagikan dengan saya?

@tjoskar Saya mencoba membuatnya untuk Anda. Tetapi sepertinya saya tidak dapat mereproduksinya pada instalasi baru Angular 8.. Baik ng serve dan ng build --prod berfungsi dengan baik pada instalasi baru..

Kesalahan yang sama di sini dengan versi sudut yang berbeda tetapi juga SSR

image

Beritahu saya jika ada data atau tes yang diperlukan. Saya juga telah menguji dengan 7.0.1 dan 7.1.0

Saya telah mencari di Google untuk masalah ini dan menemukan bahwa kesalahan itu umum untuk versi TypeScript yang lebih lama dan saya melihat bahwa Anda menggunakan 3.2.4 yang dirilis lebih dari setahun yang lalu dan 3.1.1 Dirilis September 2018. Apakah mungkin bagi Anda untuk mencoba memperbarui versi TypeScript?

A-Sebelum saya mendapat masalah

Ketergantungan sudut saya
"@angular/animasi": "^8.2.14",
"@sudut/umum": "~8.1.2",
"@angular/compiler": "~8.1.2",
"@sudut/inti": "~8.1.2",
"@angular/forms": "~8.1.2",
"@angular/platform-browser": "~8.1.2",
"@angular/platform-browser-dynamic": "~8.1.2",
"@angular/router": "~8.1.2",

Ketergantungan pengembang
"@angular-devkit/arsitek": "~0.801.2",
"@angular-devkit/build-angular": "~0.801.2",
"@angular-devkit/core": "~8.1.2",
"@angular-devkit/schematics": "~8.1.2",
"@angular/cli": "~8.1.2",
"@angular/compiler": "~8.1.2",
"@angular/compiler-cli": "~8.1.2",
"@angular/language-service": "~8.1.2",
"@ionic/angular-toolkit": "~2.0.0",

Dan "ng-lazyload-image": "^7.1.0",

B-Sekarang Setelah memperbaiki masalah

Semuanya tetap sama kecuali
"ng-lazyload-image": "^7.0.1",
"@angular-devkit/build-angular": "~0.803.24",

Saya telah menurunkan lazy-image ke 6.0.1 dan sekarang berfungsi.
Sebelum itu saya mencoba memutakhirkan versi TypeScript tanpa hasil yang diberikan versi tertinggi yang diizinkan untuk proyek saya adalah 3.3.0 mengingat saya menggunakan angular7 dan saat ini saya tidak tertarik untuk memutakhirkan ke angular8.

ERROR di The Angular Compiler membutuhkan TypeScript >=3.1.1 dan <3.3.0 tetapi 3.8.3 ditemukan sebagai gantinya.

Terima kasih atas balasan Anda @jmelich. Hanya ingin tahu, mengapa Anda tidak ingin memutakhirkan Angular? LTS untuk Angular 7 akan berakhir pada 18 April jadi saya pikir sudah waktunya :)

Untuk saat ini kami memiliki prioritas dan tugas lain yang harus dilakukan, setelah itu pasti kami akan memperbarui aplikasi ini ke sudut terbaru tetapi tidak sekarang. Modifikasi terbaru di mana perpustakaan Anda terlibat adalah untuk membuat peningkatan yang signifikan pada kecepatan halaman dengan sedikit usaha karena berisi banyak gambar. Omong-omong, terima kasih atas minat dan paket Anda, itu berfungsi dengan sangat baik: P

@jmelich Saya bermigrasi ke Angular 8 hari ini selama 30 menit!
Pemuatan malas bekerja seperti pesona sekarang!
Digunakan: https://medium.com/better-programming/upgrade-to-angular-8-beta-within-10-minutes-cd831fb8dd0e

@Denis-Evseev Saya sangat menghargai tautan Anda dan saya akan mencoba jika Anda menyatakan itu hanya 30 menit :) . Sebenarnya kami memiliki 2 aplikasi yang dibuat bersudut, keduanya dengan versi 7 tetapi salah satunya sangat besar dan dengan banyak solusi untuk persyaratan aneh dan banyak ketergantungan. Lagi pula sepertinya untuk saat ini kita semua memiliki terlalu banyak waktu untuk dihabiskan, jadi saya akan segera mencobanya. Terima kasih!

Saya minta maaf bahwa ini adalah masalah untuk Anda semua dan saya berharap saya punya solusi tetapi saya tidak tahu apa masalahnya. Saya cukup yakin ini ada hubungannya dengan versi TypeScript (dan Angular). Saya ingin sekali dapat membuat proyek tempat saya dapat mereproduksi masalah sehingga saya dapat men-debugnya tetapi pada saat yang sama Angular 7 akan dihentikan dalam waktu kurang dari sebulan, dan tidak akan lagi didukung oleh tim Angular dan karenanya tidak oleh saya juga.

Jika ada yang bisa membagikan proyek di mana ini dapat direproduksi, saya akan melihatnya dan mencoba memperbaikinya.

@Denis-Evseev, dapatkah Anda mencoba menurunkan versi lib ini ke versi 7.0.1 (hanya dengan mengatur edit:

- "ng-lazyload-image": "^7.1.0",
+ "ng-lazyload-image": "7.0.1",

dan jalankan npm install lagi?)

Saya hanya ingin tahu apakah masalah ini diperkenalkan di versi terbaru atau di versi sebelumnya

Saya dapat mengonfirmasi ini berfungsi (menurunkan versi)

Di versi 7.1.0 saya memutakhirkan ng-packagr ke versi 9.0.0 dan sepertinya versi TypeScript sebelum 3.6.4 tidak lagi didukung, tetapi sepertinya Angular 8 mendukung TypeScript 3.4 hingga 3.7.

Untuk Sudut 7:
Sepertinya berhasil bagi sebagian besar dari Anda untuk menurunkan ng-lazyload-image ke versi 7.0.1 dan karena tim Angular akan menghentikan dukungan untuk versi 7 hanya dalam beberapa minggu (18 April) saya tidak yakin bahwa saya akan memperbaiki ini. Namun, saya akan menerima PR jika seseorang ingin:

  1. Lihat lib ini
  2. Turunkan ng-packagr ke 5.7.0 dan TypeScript ke 3.5.3
  3. Turunkan sintaks ts di lib ini (alias perbaiki masalah ts yang akan muncul saat mencoba membangun)
  4. Bangun lib versi lokal (npm run build && cd dist && npm pack)
  5. Instal bundel di aplikasi Anda (npm install ../path/to/ng-lazyload-image/dist/ng-lazyload-image-7.1.0.tgz)
  6. Jalankan ng build --prod di aplikasi Anda untuk melihat apakah kesalahannya hilang.

Untuk Sudut 8:
Sepertinya Anda dapat memutakhirkan TypeScript ke 3.6.4 dan itu akan berhasil

Untuk Sudut 9:
Versi ini hanya mendukung TypeScript 3.7 dan di atasnya sehingga tidak ada masalah di sini.

Tolong beri tahu saya jika saya salah dengan cara apa pun.

@Denis-Evseev, dapatkah Anda mencoba menurunkan versi lib ini ke versi 7.0.1 (hanya dengan mengatur edit:

- "ng-lazyload-image": "^7.1.0",
+ "ng-lazyload-image": "7.0.1",

dan jalankan npm install lagi?)

Saya hanya ingin tahu apakah masalah ini diperkenalkan di versi terbaru atau di versi sebelumnya

Terimakasih.
Ini bekerja untuk saya!

Ternyata, ketika saya menurunkan versi dari 7.1.0 ke 7.0.1, itu benar-benar berfungsi, tetapi kemudian saya tidak dapat menggunakan Acara OnStateChange karena tampaknya fungsi ini benar-benar datang dalam versi 7.1.0. Saya harus menggunakan onLoad yang hanya mengembalikan boolean.

seperti yang dinyatakan @Denis-Evseev, Anda perlu mengubah langsung ke "7.0.1" dan juga menghapus referensi ke "7.1.0" dari file package.lock sehingga dapat membuat instalasi baru "7.0. versi 1". Selain itu Anda dapat menghapus folder "ng-lazy-load-image" dari direktori node_modules

Angular 7 tidak lagi didukung oleh tim Angular dan oleh karena itu juga tidak didukung oleh ng-lazyload-image . Namun saya senang menerima PR atau saran tentang cara memperbaikinya.

Jika seseorang memiliki masalah serupa dengan Angular 8 atau 9, harap buat masalah baru.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat