Ana içeriğe geç

v6

birçok yeni özellik, hız iyileştirmeleri ve bağımlılık güncellemeleri içermektedir.

Ön Söz

Kırıcı değişikliklerin rahatsız edici olduğunu biliyorum. Bu depoda kodlarınızı yeniden yapılandırmanızı gerektiren kırıcı değişiklikler nadirdir.

Ama bu, rxjs gibi bir temel bileşenin bir olay yayıcıya dayalı bir yaklaşımla değiştirildiği büyük bir güncellemedir. Bu, herhangi bir şeyin render ile ilgili olmasını yeniden yapılandırmayı gerektirir.

ipucu

Bu güncellemenin en büyük etkilerinden biri, özel renderların yeniden yapılandırılmasıdır. Bu, uygulamanızda oluşabilecek sorunları önlemek için önemlidir.

Bu güncellemede, özel renderların en büyük darbeyi alabileceğini düşündüm çünkü render tamamen yeniden yapılandırılmıştır.

Bunu yaparken, deponun en büyük sorunlarından birine odaklanmaya karar verdim. DefaultRenderer gibi bir güncellemeyi bekleyen render kullanırken, istemeden ya da bilmeyerek konsola loglama yapmanız tamamen log-update kütüphanesini kırmaktadır. Şu anda, bunu mümkün olduğunca önlemek için bir ProcessOutput soyutlaması yerinde.

Bazı seçeneklerin adlandırma şemasının tutarsız olması uzun zamandır canımı sıkıyordu. Bazı alanlar, orijinal Listr kütüphanesi ile bir miktar uyumlu kalmak için tutuldu. Bu artık benim için bir endişe değil ve bu kütüphane orijinalin ötesinde genişletildiğinden, bazı seçenekleri daha tutarlı bir adlandırma şeması ile güncellemeye karar verdim.


Migration

::: warning Eğer daha fazla kırıcı değişiklikle karşılaşırsanız, lütfen bu sayfayı düzenleyerek katkıda bulunun. :::

  • Minimum olarak node.js sürüm 16 gerekmektedir çünkü sürüm 14'e olan destek kaldırılmıştır.
  • Yedek renderın varsayılan değeri VerboseRenderer’dan SimpleRenderer’a değiştirilmiştir çünkü herhangi bir istemci (TTY) uyumu olmayan prompt olmadığında uyumsuzdur.
  • rxjs yerini, eventemitter3 ile bir olay yayıcıya dayalı bir yaklaşımla değiştirilmiştir. Bu, özel renderları kırabilir çünkü özel renderlar Task üzerinde subscribe kullanabilir. Yeniden yapılandırma, mevcut ve eski VerboseRenderer arasında karşılaştırarak kılavuzluk edebileceğiniz pek de marjinal bir durum değil.

Önemli Not: Listr ve Manager err alanları tutarlılık adına errors olarak yeniden adlandırılmıştır.

  • DefaultRenderer varsayılan çıktı formatı, render edilen verilerin terminal sütunları içinde yerleştirilmesini ele alan, truncate’dan wrap’a değiştirilmiştir çünkü bu, tüm çıktı verilerini görüntülemek için daha mantıklı bir seçimdir.
  • Listr seçenekleri nonTTYRenderer ve nonTTYRendererOptions sırasıyla fallbackRenderer, fallbackRendererOptions olarak yeniden adlandırılmıştır.
  • Listr seçenekleri fallbackCondition ve silentCondition sırasıyla fallbackRendererCondition, silentRendererCondition olarak yeniden adlandırılmıştır.
  • Listr seçeneği collectErrors varsayılan davranışı 'minimal'’dan false’a değiştirilmiştir çünkü bu, en az kullanılan işlevselliklerden biridir ve biraz bellek tasarrufu sağlamak için opt-in olması gerektiğine karar verilmiştir.

Diğer Değişiklikler

  • Listr özelliği path, hataların toplanmasının ardından görev hiyerarşisini bulmak için artık bir dize dizisi olarak kullanılmaktadır ve birleştirilmiş dize olarak değildir.
  • ListrLogger implementasyonu tamamen yeniden düzenlenmiş ve Logger’dan ListrLogger olarak yeniden adlandırılmıştır, buna bağlı olan her şey yeniden düzenlenmelidir.
  • Kütüphanenin çoğu iç API’si artık dışa aktarılmaktadır, böylece color gibi işlevleri doğrudan kullanabilirsiniz colorrette vb. ile kendi kütüphanenizi getirmeden.
  • DefaultRenderer, VerboseRenderer ve SimpleRenderer artık zaman damgaları ve görev zamanı çözümlemesi için eklenebilir bileşenler kullanmaktadır.
  • DefaultRenderer seçeneği collapse, alt görevlerin sıkıştırılıp sıkıştırılmayacağı ile ilgili iken collapseSubtasks olarak yeniden adlandırılmıştır.
  • DefaultRenderer seçeneği suffixSkips artık varsayılan değeri false olup görev sonunda [SKIPPED] olmayacaktır.
  • VerboseRenderer artık logEmptyTitle alanına sahip değildir ve başlıksız görevleri 'Başlıksız görev.' olarak kaydetmek yerine atlamaktadır.
  • TestRenderer kullanılması, test amaçları için VerboseRenderer yerine teşvik edilmektedir.
  • ListrTaskState PENDING, tutarlılık amacıyla STARTED olarak yeniden adlandırılmıştır ve ListrEventType DATA tutarlılık amacıyla OUTPUT olarak yeniden adlandırılmıştır.
  • ListrTaskRetry task.isRetrying() çıktısı artık withError yerine error içermektedir.
  • Listr şimdi forceColor ve forceTTY seçeneklerine sahiptir, çünkü bu bir şikayet olmuştur.
  • Güncel bağımlılıkları kullanmak için, depodaki her şey geliştirme ile ilgili olarak esm olarak dönüştürülmüştür ve DefaultRenderer artık her şeyi esm olarak dinamik olarak içe aktarmaktadır.
  • Görevlerdeki istemler artık kendi kanallarına sahiptir, bu durum özel render uygulamanızı kırabilir.