İçeriğe geç

Uyarılar & Sınırlar

Derleyici, derlemeyi durdurmayan tanısal bilgileri warnings dizisiyle döndürür. Her uyarı nesnesi şu alanlara sahiptir:

type LuisCompileWarning = {
code: string
line: number
message: string
}

İki politika vardır: fail-closed ve fail-soft.

PolitikaLimit aşımında davranış
fail-closedCompile error üretir, derlemeyi durdurur
fail-softresource-limit uyarısı üretir, derleme devam eder

Varsayılan politika fail-closed'dır. debug: true verildiğinde varsayılan politika fail-soft'a geçer.


KodTetiklenme Senaryosu
missing-semicolonBir declaration veya composition satırında ; eksik
invalid-syntaxGeçersiz .luis söz dizimi — tip tanımında mevcut; bu senaryolar genellikle error-path davranışıdır, uyarı olarak emit edilmez
KodTetiklenme Senaryosu
invalid-directive-order@charset, @layer gibi direktifler yanlış sırada yazıldı
invalid-directive-positionBir direktif izin verilmeyen konumda kullanıldı
KodTetiklenme Senaryosu
unsupported-importDerleyicinin desteklemediği import biçimi veya importResolver tanımlı değilken .luis import'u var
import-not-foundimportResolver null döndürdü — import çözümlenemedi
import-cycleİki veya daha fazla .luis dosyası birbirini import ediyor
invalid-import-urlGüvensiz veya desteklenmeyen URL kullanıldı (javascript: vb.)
duplicate-import-variableAynı değişken farklı import'lardan birden fazla kez tanımlandı
KodTetiklenme Senaryosu
invalid-array-range-unitArray aralığında başlangıç ve bitiş birimleri farklı ([1px-3rem] gibi)
invalid-object-loop-access@for döngüsünde object olmayan bir değere object key erişimi denendi
KodTetiklenme Senaryosu
invalid-function-syntaxFonksiyon tanımlama söz dizimi geçersiz
invalid-function-nameFonksiyon adı geçersiz karakter içeriyor
duplicate-functionAynı isimde iki fonksiyon tanımlandı
unknown-function-callTanımlanmamış bir fonksiyon çağrıldı
invalid-function-callFonksiyon çağrısı geçersiz biçimde yapıldı
function-argument-mismatchÇağrıdaki parametre sayısı tanımdakiyle eşleşmiyor
function-recursionFonksiyon kendini çağırıyor
KodTetiklenme Senaryosu
resource-limitYalnızca fail-soft modunda: bir kaynak limiti aşıldı

LimitVarsayılanAçıklama
maxForIterationsPerLoop2.000Tek bir @for döngüsündeki maksimum iterasyon sayısı
maxNestedLoopProduct100.000İç içe döngülerde iterasyon çarpımı sınırı (i × j × k…)
maxExpandedRules50.000Derlemede üretilebilecek maksimum kural sayısı
maxOutputCssChars3.000.000Final CSS çıktısının maksimum karakter sayısı
maxImportDepth64Import zincirinde izin verilen maksimum derinlik
maxImportCount2.000Derleme sırasında çözümlenebilecek toplam import adedi
maxImportedBytes4.000.000Import edilen toplam kaynak karakter/byte bütçesi
LimitVarsayılanAçıklama
maxObservedRules5.000Derleme sırasında kabul edilebilecek toplam observed kural sayısı
maxObservedActiveRules1.000Runtime'da aynı anda aktif kalabilecek observed kural sayısı
maxObservedRuleKeysPerToken300Runtime index'inde tek bir token için tutulabilecek maksimum rule key sayısı
maxMutationBatchTokens1.500Runtime'da tek bir mutation batch içinde işlenebilecek token sayısı
maxObservedReevalPerTick500Runtime'da tek bir tick içinde yeniden değerlendirilebilecek observed kural sayısı

resourcePolicy: 'fail-soft' aktifken her hata tipinde derleme durumu ve üretilen çıktı:

Hata TipiÇıktıUyarı Kodu
Eksik ;Kural olduğu gibi üretilirmissing-semicolon
Geçersiz selectorGenel bir uyarı üretilmez; selector metni genelde olduğu gibi emit edilir. Bazı observed suffix hataları static selector'e düşürülür. Yapısal syntax hataları derlemeyi hata ile durdurur.
Geçersiz ${...} ifadesiUyarıya çevrilmez; Invalid .luis syntax ... hatası fırlatır ve derlemeyi durdurur. Boş string'e çevrilmez.
Bilinmeyen @fun çağrısıÇağrı atlanırunknown-function-call
Parametre sayısı uyuşmazlığıÇağrı açılmazfunction-argument-mismatch
Güvensiz veya desteklenmeyen @import URLImport atlanırinvalid-import-url
Import depth / count / imported-bytes limit aşımıresource-limit uyarısı üretilir; limit aşan import dalı kesilirresource-limit
Loop / iç içe döngü limit aşımıresource-limit uyarısı üretilir; limiti aşan döngü bloğu atlanırresource-limit
Expanded rule limit aşımıresource-limit uyarısı üretilir; fazla kurallar limite kesilirresource-limit
Observed rule limit aşımıresource-limit uyarısı üretilir; non-observed kurallar korunur, observed kurallar limite filtrelenirresource-limit
Final CSS boyut limit aşımıresource-limit uyarısı üretilir; CSS çıktısı olduğu gibi döndürülür, kısılmazresource-limit

fail-soft modunda her limitin aşım davranışı farklıdır:

Limit AşımıDavranış
Import depth / count / imported-bytes limitiresource-limit uyarısı üretilir; limiti aşan import dalı çözümlemede kesilir
Loop iterasyon / iç içe döngü çarpım limitiresource-limit uyarısı üretilir; limiti aşan döngü bloğu atlanır
Expanded rule limitiresource-limit uyarısı üretilir; fazla kurallar limite kesilir
Observed rule limiti (maxObservedRules)resource-limit uyarısı üretilir; non-observed kurallar korunur, observed kurallar limite filtrelenir
Final CSS boyut limitiresource-limit uyarısı üretilir; CSS çıktısı olduğu gibi döndürülür, kısılmaz
Mutation batch limiti (maxMutationBatchTokens)resource-limit uyarısı üretilir; işlenecek token seti limite kesilir
Observed reevaluation limiti (maxObservedReevalPerTick)resource-limit uyarısı üretilir; yeniden değerlendirilecek rule key seti limite kesilir
Aktif observed kural limiti (maxObservedActiveRules)resource-limit uyarısı üretilir; aktif rule key seti limite kesilir