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.
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 üzerindesubscribe
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
veManager
err
alanları tutarlılık adınaerrors
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
’danwrap
’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çeneklerinonTTYRenderer
venonTTYRendererOptions
sırasıylafallbackRenderer
,fallbackRendererOptions
olarak yeniden adlandırılmıştır.Listr
seçeneklerifallbackCondition
vesilentCondition
sırasıylafallbackRendererCondition
,silentRendererCondition
olarak yeniden adlandırılmıştır.Listr
seçeneğicollectErrors
varsayılan davranışı'minimal'
’danfalse
’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ğipath
, 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ş veLogger
’danListrLogger
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 kullanabilirsinizcolorrette
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 ikencollapseSubtasks
olarak yeniden adlandırılmıştır. - DefaultRenderer seçeneği
suffixSkips
artık varsayılan değerifalse
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ıylaSTARTED
olarak yeniden adlandırılmıştır veListrEventType
DATA
tutarlılık amacıylaOUTPUT
olarak yeniden adlandırılmıştır.ListrTaskRetry
task.isRetrying()
çıktısı artıkwithError
yerineerror
içermektedir.Listr
şimdiforceColor
veforceTTY
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 şeyiesm
olarak dinamik olarak içe aktarmaktadır. - Görevlerdeki istemler artık kendi kanallarına sahiptir, bu durum özel render uygulamanızı kırabilir.