Açısal Tarayıcılar listesi: caniuse-lite eski. Lütfen sonraki komut npm update`i çalıştırın


11

Son zamanlarda üzerinde çalıştığım bir Açısal 8 projesinde (düğüm v10.16.0) bu hatayı almaya başladım. Npm güncellemesi caniuse-lite tarayıcılar listesini çalıştırmak hiçbir şey yapmadı

Bu yüzden package-lock.json'u kaldırdım, node_modules'ü kaldırdım ve npm install'i çalıştırdım, ancak browserlist dosyası gitti. Yine ng inşa ederken, ben aynı mesajı alıyorum: Tarayıcılar listesi: caniuse-lite modası geçmiş. Lütfen sonraki komutu çalıştırnpm update

Bu konuyu aynı konuda görüyorum: Tarayıcılar listesi: caniuse-lite modası geçmiş. Lütfen sonraki komutu çalıştırın npm update caniuse-lite browslist` Ancak, WebCompiler ve otomatik düzeltici hakkında konuşuyor ve bunlar hakkında hiçbir fikrim yok. Lütfen yönlendirin


S: Bu Açısal projeyi Visual Studio ile oluşturdunuz mu? S: Talimatları basitçe uygulayıp çalıştırdığınızda ne oldu npm update caniuse-lite browserslist?
FoggyDay

1
Evet, açısal proje Visual Studio 2017 kullanıyor. Npm update caniuse-lite tarayıcılar listesini kullandığımda hiçbir şey olmadı. Hiçbir şey
kurulmuyor

Yeni npm yüklemesini yaptıktan sonra tarayıcı listesi dosyası gittiğinden (caniuse-lite var), tarayıcı listesinde npm çalıştırmamı önerir misiniz?
SilverFish

Ben sadece aynı problemi aldım. phpstrom bana çalıştırmak için söyler npm updateama bu sorunu çözmedi, sadece açısal 8 için benim daktilo sürümü yüksek yaptı
BlakkM9

1
Düzenleyicinin neden bu çatışmaya neden olacağından emin olmasam da, Visual Studio kodunu kullanarak Angular 8 de aynı sorunu yaşıyorum. Bu konuda henüz cevap var mı? Bu hafta çok yeni bir özellik yayınlamamız gerekiyor ve elbette şimdi uygulamamız oluşturulmayacak. Tarayıcı listesini kullanarak node_modules'ümüzden birkaç tanesini görüyorum
HomeBrew

Yanıtlar:


8

Aşağıdaki komutları çalıştırarak caniuse-lite eski sorununu çözdü.

npm cache clean  # optional
npm install caniuse-lite@latest --save

npm cache cleanen son sürümlerde npm tarafından otomatik olarak işlendiği için doğrudan çalışmaz. Kullanmamızı ister misiniz --force? Cevabınız evet ise, neden önbelleği nüksetmemiz gerektiğini açıklayınız.
Vishnudev

1
npm önbellek temizleme gerekli değildir. doğrudan koşabilirsiniznpm install caniuse-lite@latest --save
Dipten

1
Uygulamanıza caniuse-lite eklemek (package.json bloat aracılığıyla) iyi bir fikir değildir, çünkü uygulamanıza bağımlı değildir - sadece npm araç setinizdir. Aşağıdaki daha uzun açıklamaya bakın. Ayrıca '--save' artık yükleme ile varsayılan eylem olduğu için gereksizdir.
jdh

Bu benim için caniuse-lite'i başarıyla yüklüyor, yine de aynı hatayı alıyorum.
nullmn

10.x düğümü ile denedim ve düzeltildi. lütfen düğüm sürümünüzü kontrol edin.
Ocak'ta Dipten

2

TLDR: (açıklama olmadan karşı sezgisel görünebilir)

  npm install caniuse-lite browserslist
  npm uninstall caniuse-lite browserslist

Açıklama:

Bu uyarı msg ("canisuse-lite güncel değil, lütfen ....") caniuse-lite'ın yüklü sürümünün mevcut sürümden 2 sürümden daha eski olduğunu tespit ederse derleme / başlatma sırasında tarayıcılar listesindeki komut dosyaları tarafından verilir. Projenizdeki hiçbir şey değişmediyse ve projenizi başlatırken veya oluştururken aniden bu mesajı görürseniz, muhtemelen caniuse-lite için son sürüm güncellemesi olduğu anlamına gelir.

Ne yazık ki, tarayıcı listesinin görüntülediği metin mesajı yalnızca projenize bağımlı olarak caniuse-lite yüklediyseniz yararlıdır. Büyük olasılıkla, yapmadın. Bu nedenle, önerilen 'npm güncelleme caniuse-lite' veya 'npm güncelleme' caniuse-lite @ latest '(veya' npm yükleme ') çalıştırdığınızda, npm paketinizde listelenen paketi görmez. Json bağımlılıkları yok sayılır talep.

Peki bu paketler nasıl bağımlılıklara dönüştü? Projeniz oluşturulduğunda (belki uygulama angularapp veya oluştur-tepki-uygulama veya benzeri bir çerçeve ile), npm tarayıcılar listesini projenizin bağımlılıklarından biri olarak değil, gerekli araçlarının bir bağımlılığı olarak yükledi. Aynı zamanda, caniuse-lite, tarayıcı listesinin bir bağımlılığı olarak kuruldu. Daha sonra proje güncellendiğinde, belirli bir sürüme tüm bağımlılıkları kilitleyen bir package-lock.json dosyası oluşturuldu.

Package-lock.json içindeki bağımlılıklar listesindeki sürüm bilgilerini güncelleyebildiyseniz, 'npm install' komutunu çalıştırmak node_modules içindeki bu paketleri güncelleyecektir. Package-lock.json dosyasını el ile düzenlememelisiniz. Bunun yerine, bunu yapmanın en iyi yolu:

  1. Bu paketleri geçici olarak projenize bağımlı hale getirin:

    npm install caniuse-lite tarayıcılar listesi

    Paketi en son sürüme güncellemenin yanı sıra, hem package.json hem de (en önemlisi) package-lock.json içindeki bağımlılık listesini güncelleştirir.

  2. Bu paketleri projenizin doğrudan bağımlılıkları olarak kaldırın:

    npm kaldırma caniuse-lite tarayıcılar listesi

    Bu paketler diğer bağımlılıklar tarafından kullanıldığından, düğüm_modüllerinden kaldırılmaz. Yalnızca package.json, proje bağımlılığı olarak kaldırılmak üzere güncelleştirilir.

  3. Package-lock.json dosyasını çalıştırın. Başka herkes artık güncelleştirilmiş iki paketi package-lock.json dosyasındaki alt bağımlılıklar listesinden almak ve uyarı mesajını durdurmak için 'npm install' komutunu çalıştırabilir.


Çözümünüzü denedim ama hala bu mesajla bir uyarı var (Tarayıcılar listesi: caniuse-lite eski. Lütfen sonraki komutu çalıştırın npm update) ve temiz bir açısal kurulum ile.
Alexander Kushnir

1 günümüzün). Tarayıcı listesinin (4.8.3) yeni sürümü yalnızca canisuelite güncellenmemişse şikayet etmelidir. Bu iki paketi güncelleştirmeyen .npmrc dosyasında bir önbellekleme sunucunuz olması mümkün mü? (İstiyorsanız, yüklemeden önce .npmrc'yi geçici olarak yeniden adlandırmayı deneyin?)
jdh

Ben sadece tüm bunları yapmak zorunda kaldı caniuse-liteve mesaj gitti
MoonStom

@MoonStom - yalnızca caniuse-lite yüklerseniz, bunu uygulamanızın bir bağımlılığı olarak eklersiniz, bu doğru değildir. Sorun npm ve tarayıcılar listesindedir. Bunlar düzeltildikten sonra, uygulamanız caniuse-lite'a bağımlı olmamalıdır.
jdh
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.