Saya baru-baru ini mulai mendapatkan kesalahan ini pada proyek Angular 8 (node v10.16.0) yang saya kerjakan. Menjalankan npm memperbarui daftar browser caniuse-lite tidak melakukan apa-apa
Jadi saya menghapus package-lock.json, menghapus node_modules dan menjalankan npm install, tetapi file daftar browser telah hilang. Sekali lagi ketika saya menjalankan ng build, saya mendapatkan pesan yang sama: Browserslist: caniuse-lite sudah usang. Silakan jalankan perintah selanjutnyanpm update
Saya melihat posting ini pada topik yang sama: Daftar browser: caniuse-lite sudah usang. Silakan jalankan perintah berikutnya `npm perbarui caniuse-lite browserslist` Namun, ia berbicara tentang WebCompiler dan autoprefixer dan saya tidak tahu itu. Tolong dibimbing
sumber
npm update caniuse-lite browserslist
?npm update
tetapi ini tidak menyelesaikan masalah, hanya membuat versi naskah saya menjadi tinggi untuk sudut 8.Jawaban:
Memecahkan masalah usang caniuse-lite dengan menjalankan perintah di bawah ini.
sumber
npm cache clean
tidak bekerja secara langsung karena ditangani oleh npm secara otomatis di versi terbaru. Apakah Anda ingin kami menggunakan--force
? Jika ya, tolong jelaskan mengapa kita harus nuking cache.npm install caniuse-lite@latest --save
TLDR: (mungkin tampak kontra-intuitif tanpa penjelasan)
Penjelasan:
Pesan peringatan ini ("canisuse-lite sudah usang, tolong ....") adalah output oleh skrip dalam daftar browser selama build / start jika menemukan versi terinstal caniuse-lite lebih tua dari 2 versi dari versi saat ini. Jika tidak ada dalam proyek Anda yang berubah dan Anda tiba-tiba melihat pesan ini ketika memulai atau membangun proyek Anda, itu mungkin berarti ada pembaruan versi terbaru untuk caniuse-lite.
Sayangnya, pesan teks yang ditampilkan oleh browser hanya membantu jika Anda menginstal caniuse-lite sebagai ketergantungan proyek Anda. Kemungkinan besar, Anda tidak melakukannya. Jadi, ketika Anda menjalankan 'npm update caniuse-lite' atau 'npm update' caniuse-lite @ latest '(atau' npm install '), npm tidak melihat paket yang tercantum dalam dependensi package.json Anda, sehingga mengabaikan Permintaan.
Bagaimana paket-paket itu menjadi dependensi? Ketika proyek Anda dibuat (mungkin dengan aplikasi angularapp atau create-react-app atau serupa untuk kerangka kerja Anda), npm memasang daftar browser sebagai ketergantungan dari alat yang diperlukan, bukan sebagai salah satu dependensi proyek Anda. Pada saat yang sama, caniuse-lite diinstal sebagai dependensi dari daftar browser. Kemudian ketika proyek diperbarui, file package-lock.json dibuat yang mengunci semua dependensi ke versi tertentu.
Jika Anda dapat memperbarui informasi versi dalam daftar dependensi di package-lock.json, maka menjalankan 'npm install' akan memperbarui paket-paket ini dalam node_modules. Anda tidak boleh mengedit package-lock.json secara manual. Sebaliknya, cara terbaik untuk melakukannya adalah:
Jadikan sementara paket-paket ini ketergantungan proyek Anda:
npm pasang daftar browser caniuse-lite
Selain memperbarui paket ke versi terbaru, ini memperbarui daftar ketergantungan di kedua package.json dan (yang paling penting) package-lock.json.
Hapus paket-paket ini sebagai dependensi langsung dari proyek Anda:
npm uninstall daftar browser caniuse-lite
Karena paket-paket ini digunakan oleh dependensi lain, mereka tidak dihapus dari node_modules. Hanya package.json yang diperbarui untuk menghapusnya sebagai ketergantungan proyek.
Komit package-lock.json. Orang lain sekarang dapat menjalankan 'npm install' untuk mendapatkan dua paket yang diperbarui dari daftar sub dependensi di package-lock.json, dan menghentikan pesan peringatan.
sumber
npm update
) dan dengan pengaturan sudut yang bersih.caniuse-lite
dan pesannya hilang