Halo,
Mulai beberapa hari yang lalu, kami mulai melihat hal berikut ketika mencoba membangun proyek Angular2+ yang sudah ada dengan menggunakan @types/lodash-es dan lodash-es.
.../node_modules/@types/lodash/common/object.d.ts (): Cannot find name 'Exclude'.
Ini menyebabkan build produksi tidak lagi berhasil diselesaikan.
Proyek ini menggunakan:
"@types/lodash-es": "^4.14.5",
"lodash-es": "^4.17.4",
"ketik": "~2.3.2"
Per https://github.com/lodash/lodash/issues/4225 dan https://stackoverflow.com/questions/55018665/following-lodash-error-on-build-cannot-find-name-exclude , sepertinya ada perubahan yang dilakukan yang bergantung pada TypeScript 2.8+
Bisakah Anda memberikan pembaruan yang tidak memerlukan versi TypeScript untuk diperbarui melewati 2.3+?
Sepertinya saya bahwa masalahnya mungkin disebabkan oleh @types/lodash-es yang membutuhkan "@types/lodash": "*" dalam file package-lock.json. Ini menghasilkan entri berikut dalam file package-lock.json:
"@types/lodash": {
"version": "4.14.123",
"resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.123.tgz",
},
versi 4.14.123 berisi perubahan yang melanggar (menggunakan Kecualikan yang hanya tersedia di TypeScript 2.8+).
Bagaimana saya bisa menggunakan versi @types\lodash-es yang tidak menyebabkan versi terbaru @types/lodash dibawa ke/digunakan dalam proyek?
Lebih detail disediakan dalam pertanyaan saya di sini: https://stackoverflow.com/questions/55123747/lodash-es-error-on-build-cannot-find-name-exclude
Sepertinya saya bahkan versi sebelumnya dari @types/lodash-es menyebabkan versi terbaru dari @types/lodash dibawa ke dalam proyek, yang berarti proyek tidak akan dibangun karena @types/lodash 4.14.123 adalah tidak kompatibel dengan TypeScript 2.3.* (karena Exclude digunakan). Namun, saya tidak memiliki kendali atas versi @types/lodash mana yang diperlukan karena ini ditangani secara tidak langsung @types/lodash-es yang merupakan satu-satunya ketergantungan terkait yang saya miliki dalam proyek ...
package.json
{
"nama": "Tes",
"versi": "0.0.0",
"lisensi": "MIT",
"skrip": {
"ng": "ng",
"mulai": "ng servis",
"membangun": "ng membangun",
"tes": "tes ng",
"lint": "ng serat",
"e2e": "ng e2e",
"bundle-report": "webpack-bundle-analyzer dist/stats.json"
},
"pribadi": benar,
"ketergantungan": {
"@angular/animasi": "^4.2.5",
"@sudut/umum": "^4.2.5",
"@angular/compiler": "^4.2.5",
"@angular/compiler-cli": "^4.2.5",
"@sudut/inti": "^4.2.5",
"@angular/forms": "^4.2.5",
"@angular/http": "^4.2.5",
"@angular/platform-browser": "^4.2.5",
"@angular/platform-browser-dynamic": "^4.2.5",
"@angular/router": "^4.2.5",
"@asymmetrik/ngx-leaflet": "2.6.1",
"@asymmetrik/ngx-leaflet-draw": "2.7.1",
"@types/angular-ui-bootstrap": "^0.13.44",
"@types/fullcalendar": "^3.5.0",
"@types/googlemaps": "^3.26.14",
"@types/highcharts": "^5.0.36",
"@types/jquery": "^2.0.46",
"@types/jqueryui": "^1.11.35",
"@types/leaflet": "1.2.7",
"@types/leaflet-draw": "0.4.12",
"@jenis/momen": "^2.13.0",
"@types/node": "^6.0.79",
"@ultimate/ngxerrors": "^1.3.0",
"angular2-virtual-scroll": "^0.3.1",
"babel-regenerator-runtime": "^6.5.0",
"bootstrap": "^3.3.7",
"inti-js": "^2.4.1",
"dragula": "^3.7.2",
"font-mengagumkan": "^4.7.0",
"kalender penuh": "^3.6.2",
"fullcalendar-scheduler": "^1.9.3",
"highcharts": "6.2.0",
"jquery": "^3.2.1",
"jquery-ui-sortable": "^1.0.0",
"jqueryui": "^1.11.1",
"leaflet": "1.3.1",
"leaflet-draw": "1.0.2",
"lodash": "^4.17.4",
"momen": "^2.18.1",
"zona waktu-momen": "^0.5.14",
"ng-treetable": "^1.2.3",
"ng2-ckeditor": "1.1.9",
"ng2-dragula": "^1.5.0",
"ng2-pdf-viewer": "3.0.8",
"ngx-bootstrap": "^1.9.1",
"ngx-cookie-service": "^1.0.10",
"ngx-malihu-scrollbar": "^1.1.2",
"ngx-pipes": "~1.6.1",
"ngx-restangular": "^1.0.11",
"ngx-slick": "^0.1.3",
"utama": "4.2.2",
"rxjs": "^5.1.0",
"slick-carousel": "^1.8.1",
"socket.io-client": "^2.0.4",
"zone.js": "^0.8.4"
},
"devDependencies": {
"@angular/cli": "^1.7.4",
"@angular/compiler-cli": "^4.0.0",
"@types/jasmine": "2.5.38",
"@types/leaflet": "1.2.7",
"@types/leaflet-draw": "0.4.12",
"@types/node": "~6.0.60",
"codelyzer": "~2.0.0",
"inti melati": "~2.5.2",
"jasmine-spec-reporter": "~3.2.0",
"karma": "~1.4.1",
"karma-chrome-launcher": "~2.1.1",
"karma-cli": "~1.0.1",
"karma-liputan-istanbul-reporter": "^0.2.0",
"karma-jasmine": "~1.1.0",
"karma-jasmine-html-reporter": "^0.2.2",
"busur derajat": "~5.1.0",
"ts-node": "~2.0.0",
"tslint": "~4.5.0",
"ketik": "2.3.4",
"webpack-bundle-analyzer": "^2.9.0"
}
}
Langkah:
GALAT di /../node_modules/@types/lodash/common/object.d.ts (1689,12): Tidak dapat menemukan nama 'Kecualikan'.
GALAT di /../node_modules/@types/lodash/common/object.d.ts (1766,12): Tidak dapat menemukan nama 'Kecualikan'.
GALAT di /../node_modules/@types/lodash/common/object.d.ts (1842,34): Tidak dapat menemukan nama 'Kecualikan'.
Mendapat kesalahan di atas ini. Adakah cara untuk menyelesaikan ini??
Jika saya mengganti file ("/../node_modules/@types/lodash/common/object.d.ts") dengan kode " https://codeshare.io/adWzlB " maka berfungsi ...
mengalami masalah serupa, menginstal versi "4.14.121" dari @types/lodash dan berfungsi dengan baik yang tampaknya versi yang lebih stabil dan kompatibel dengan versi TypeScript yang telah saya instal
dependensi adalah seperti di bawah ini dalam file package.json saya:
"ketergantungan": {
.........................,
"@types/lodash": "4.14.121",
"ketik": "2.5.3",
}
Anda dapat menginstal tipe untuk TypeScript versi lama dengan menggunakan tag npm. Misalnya jenis lodash untuk TypeScript 2.5 npm i -D @types/[email protected]
.
Baru saja memperbarui typescript@~2.8.x
dan masalahnya hilang!
@elouizbadr Apakah Anda mengalami kelambatan dalam membangun setelah memutakhirkan ke typescript@~2.8.x
. Waktu pembuatan saya terlalu lama, hampir dua kali lebih lambat setelah memutakhirkan ke 2.8.x.
Saya mengalami masalah yang sama kemudian saya telah mengikuti langkah-langkah @ faizu88 dan saya telah menyelesaikan masalah tersebut.
Saya memiliki masalah yang sama. Solusi saya dijalankan di bawah perintah
aplikasi cd
npm install @types/ [email protected] --save -exact
Semoga bisa membantu banyak orang. :)
Ini bekerja untuk saya: https://github.com/DefinitelyTyped/DefinitelyTyped/issues/33778#issuecomment -473358843 oleh @j-oliveras
Kasus ini saya hadapi ketika saya bekerja di tim yang menggunakan nodejs versi yang sama dan
npm. Dengan kode sumber yang sama saya tidak bisa membangun, dan teman saya tidak punya masalah.
Ketika saya memeriksa node_module dan membandingkan lodash. Saya menemukan bahwa versinya adalah
berbeda. Versi yang benar adalah 4.14.116.
Pada Senin, 20 Mei 2019 pukul 22:41 Toby Thain [email protected]
menulis:
Apakah ada penjelasan yang jelas dan perbaikan yang masuk akal untuk ini?
—
Anda menerima ini karena Anda berkomentar.
Balas email ini secara langsung, lihat di GitHub
https://github.com/DefinitelyTyped/DefinitelyTyped/issues/33778?email_source=notifications&email_token=AELTPL2WSZ6YGC5FNLAIF3TPWLBEJA5CNFSM4G5FWYT2YY3PNVWWK3TUL52HS4DFVREXG43VMXVBW4Vissue
atau matikan utasnya
https://github.com/notifications/unsubscribe-auth/AELTPL3O5YGZXAHUDSEBN3TPWLBEJANCNFSM4G5FWYTQ
.
npm i -D @types/ [email protected]
perintah ini bekerja untuk saya juga.
Baru saja memperbarui
typescript@~2.8.x
dan masalahnya hilang!
Saya mengatur TypeScript@~2.8.2 dan berhasil!! Terima kasih !!
Komentar yang paling membantu
Anda dapat menginstal tipe untuk TypeScript versi lama dengan menggunakan tag npm. Misalnya jenis lodash untuk TypeScript 2.5
npm i -D @types/[email protected]
.