Shopify Theme Check Belirli Dosyalar ve Bölümleri CLI ile Kontrol Etme
Shopify Theme Check'i CLI bayrakları, satır içi yorumlar ve .theme-check.yml kullanarak belirli dosyalar, bölümler ve Liquid üzerinde çalıştırmayı öğrenin
Shopify Theme Check'i belirli dosyalar veya bölümler üzerinde çalıştırmak için üç seçeneğiniz vardır: doğrudan CLI'ye bir yol argümanı geçmek, hedeflenen kod bloklarının kontrol edilmesini devre dışı bırakmak için satır içi Liquid yorumlarını kullanmak veya .theme-check.yml dosyanızda bir ignore deseni yapılandırmak. Çıktıyı tek bir dosyayla sınırlayan tek bir --only bayrağı yoktur, ancak bu üç yaklaşımı birleştirmek, nelerin kontrol edileceği ve nelerin atlanacağı konusunda kesin ve ince bir denetim sağlar.
Kilit noktalar
shopify theme check ./sections/hero.liquidçalıştırmayı belirli bir dosya yoluna kısıtlar.- Satır içi
{% # theme-check-disable %}yorumları, adlandırılmış bir Liquid kod bloğunun kontrolünü bastırır. .theme-check.ymlsayesinde tam glob desenlerini (örn.snippets/icon-*) kalıcı olarakignoreedebilirsiniz.--configbayrağı yapılandırma dosyanızı anında geçersiz kılar, CI işlem hatlarında kullanışlıdır.- Eski
Shopify/theme-checkRuby gem'i Temmuz 2024'te arşivlendi; güncel linter,@shopify/clive@shopify/themepaketleri aracılığıyla Shopify CLI içinde yer alır.
Hedeflenen linting neden önemlidir (ve kafa karışıklığı nereden geliyor)
Yüzlerce Liquid dosyası olan büyük bir tema karşısında shopify theme check çalıştırmak, uyarıların bir duvarı oluşturur. Çoğu geliştirici yalnızca üzerinde çalıştıkları dosyayı lintlemek veya bir bölümün gürültülü kontrolünü devre dışı bırakmak istemektedir. CLI belgeleri bunu yanıtlar, ancak üç ayrı sayfaya yayılmıştır; bu yüzden bu soru hiç bitmez.
İyi haber: araçlar gerçekten esnektir. Her kullanım durumu için hangi kaldıracı çekileceğini öğrenince iş akışı hızlıdır.
Yöntem 1: Dosya yolunu konumsal bir argüman olarak geçme
En doğrudan yaklaşım. Theme Check'i tema kökünün tamamında çalıştırmak yerine, kontrol etmek istediğiniz dosya (veya dizin) için göreli yolu ekleyin:
shopify theme check sections/custom-hero.liquid
shopify theme check snippets/product-card.liquid
shopify theme check sections/
Bu, linter'a yalnızca o dosya veya klasörü analiz etmesini söyler. Önemli bir uyarı: tüm temayı kontrol etme işlemi kısmen bastırılır tek bir dosyaya kapsam belirlediğinizde. UnusedSnippet veya TranslationKeyExists gibi çapraz dosya farkındalığı gerektiren kontroller, anlamlı bir sonuç üretmek için tam temayı okumaları gerektiğinden tek dosya modunda devre dışı bırakılır.
Kesinlikle dosya düzeyindeki hatalar (Liquid sözdizimi, kullanımdan kaldırılan filtreler, tanımlanmamış nesneler, eksik {% endschema %} etiketleri) için tek dosya kapsam mükemmel şekilde çalışır.
Yöntem 2: Liquid yorumlarıyla satır içi kontrolleri bastırma
Geniş bir shopify theme check çalıştırmasını tutmak ancak bir kod bölümünün belirli kontrolünü kesmek istediğinizde, Theme Check'in yerleşik yorum yönergelerini kullanın:
{% # theme-check-disable UnusedAssign %}
{% assign debug_mode = true %}
{% # theme-check-enable UnusedAssign %}
Bir blok için tüm kontrolleri devre dışı bırakmak için:
{% # theme-check-disable %}
{# ...henüz geçirmediniz eski kod... #}
{% # theme-check-enable %}
Bu yaklaşım, karmaşık bir özel bölümde yineleme yaptığınızda, dağınık bir tema kod tabanını devraldığınızda veya bir projede Theme Check'i eklediğinizde ancak bir defada düzeltmeye hazır olmadığınız mevcut sorunların büyük bir birikimine sahip olduğunuzda doğru seçimdir. Yorumlar dar kapsamlıdır: bu sınırlayıcıların dışında hiçbir şey etkilenmez.
Yöntem 3: .theme-check.yml'de ignore desenlerini yapılandırma
Kalıcı olarak dışlamak istediğiniz yollar için .theme-check.yml yapılandırma dosyası doğru araçtır. Başlangıç dosyasını şu şekilde oluşturabilirsiniz:
shopify theme check --init
Daha sonra, belirli kontroller veya küresel olarak ignore glob'ları eklemek için dosyayı düzenleyin:
TemplateLength:
enabled: true
max_length: 400
ignore:
- sections/legacy-homepage.liquid
- snippets/icon-*
Belirli sorunların CI çalıştırmasını başarısız kılırken diğerlerinin yalnızca bilgi amaçlı olarak raporlanması için kontrol başına ciddiyet seviyeleri (error, warning, info) de belirleyebilirsiniz. Varsayılan olarak, Theme Check, en az bir error ciddiyeti sorunu algılandığında 1 çıkış kodu döndürür. İşlem hattınız için bu eşiği ayarlamak için --fail-level kullanın:
shopify theme check --fail-level suggestion
Yöntem 4: --config ile yapılandırmayı anında geçersiz kılma
Birden fazla kontrol profili tutuyorsanız (biri katı, biri izin verici), --config bayrağı, hiçbir dosyayı düzenlemeden aralarında geçiş yapmanızı sağlar:
shopify theme check --config theme-check:recommended
shopify theme check --config theme-check:all
Bu yerleşik hazır ayarlar en yaygın senaryoları kapsar. theme-check:recommended çoğu tema gönderimi için varsayılandır; theme-check:all her kullanılabilir kontrolü etkinleştirir ve Shopify Theme Store'da yayınlamadan önce kapsamlı bir denetim için yararlıdır.
2024'te Neler Değişti: theme-check repo arşivlendi
Tek başına Shopify/theme-check Ruby gem'ini referans gösteren eski yer imleriniz veya öğreticileriniz varsa, bu depo Temmuz 2024'te salt okunur olarak arşivlendi olduğunu unutmayın. Tüm aktif geliştirme Shopify/theme-tools monorepo'suna taşındı ve linter şimdi @shopify/cli ve @shopify/theme npm paketleri aracılığıyla dağıtılmaktadır.
Yüklemek veya güncellemek için:
# macOS
brew upgrade shopify-cli
# npm (global)
npm install -g @shopify/cli @shopify/theme
Shopify CLI 4.0 ile başlayarak, CLI, bunu hangi paket yöneticisiyle kurduğunuzdan bağımsız olarak, kendini otomatik olarak yükseltir; bu nedenle çoğu durumda zaten en son sürümdesiniz.
VS Code uzantısı (Shopify Liquid) da Theme Check'i paketler ve bir themeCheck.onlySingleFileChecks ayarını ortaya koyar. true olarak ayarlandığında, uzantı yalnızca açık olan dosyayı kontrol eder ve performans için tüm tema kontrollerini devre dışı bırakır. Bu, CLI'nin tek dosya yol davranışını yansıtır ve büyük temalarda her kaydetmede tam tema lintlemesi editörü yavaşlattığında etkinleştirilmeye değer.
Bir araya getirme: bölüm geliştirme için pratik iş akışı
Özel bir Liquid bölümü oluştururken veya hata ayıklarken iyi çalışan desen şudur:
- Geliştirme sunucusu başlatın:
shopify theme dev --store your-store.myshopify.com - Bölümünüzü düzenleyin:
sections/your-section.liquid'ye değişiklikler yapın - Yalnızca bu dosyayı lintleyin:
shopify theme check sections/your-section.liquid - Satır içi gürültülü kontrolleri bastırın bugün düzeltmemeyi planladığınız mevcut sorunlar için.
- Tam kontrol çalıştırın (
shopify theme check) bir pull request açmadan veya üretime göndermeden önce. - CI'yı yalnızca hatalar için kapılandırın
--fail-level errorkullanarak; uyarılar dağıtımları engellemez.
Bu yaklaşım, iç geri bildirim döngünüzü hızlı tutarken, gerçek hataların müşterilere ulaşmadan önce yakalanmasını sağlar.
Mağaza ön ucunuzun kodunu temiz tutmak, operasyon yığınının bir katmanıdır. Diğer katman ise, her gün tam olarak hangi ürünlerin tükenmek üzere olduğunu ve size gerçek satışlara mal olacağını bilmektir. Onlarca veya yüzlerce SKU'nun envanterini yönetiyorsanız, Stockcast: Inventory Forecast stoktan çıkma tahminlerini aciliyet sırasına göre sıralı şekilde gösterir ve her tavsiyenin arkasında saydamlığı sağlayan, açıklanabilir matematik bulunur, yani yeniden sipariş kararları asla bir his tahmini olmaz.
Shopify App Store'da Stockcast: Inventory Forecast'u deneyin
SSS
shopify theme check'i tek bir Liquid bölüm dosyasında çalıştırabilirim mi? Evet. Dosya yolunu konumsal bir argüman olarak geçin: shopify theme check sections/your-section.liquid. Tek bir dosyaya kapsam belirlediğinizde tüm tema kontrolleri (kullanılmayan bölüm tespiti gibi) devre dışı bırakılır, çünkü doğru şekilde çalışmak için tam temayı okumaları gerekir.
Belirli bir Theme Check kuralını hiçbir yerde kapatmadan bir kod bloğu için nasıl devre dışı bırakabilirim? Satır içi Liquid yorum yönergeleri kullanın: bloktan önce {% # theme-check-disable CheckName %} ve sonra {% # theme-check-enable CheckName %}. Bu, yalnızca sınırlı blok içinde adlandırılmış kontrolü bastırır ve dosya ile temamın geri kalanı tamamen lintlenmiş olarak kalır.
Tek başına theme-check gem/CLI'sine 2024'te ne oldu? Shopify, Shopify/theme-check Ruby gem repository'sini Temmuz 2024'te arşivledi ve tüm aktif geliştirmeyi Shopify/theme-tools monorepo'suna taşıdı. Theme Check artık @shopify/cli'nin bir parçası olarak dağıtılır ve shopify theme check aracılığıyla çalışır. Eski bir kurulumda iseniz, brew upgrade shopify-cli veya npm install -g @shopify/cli @shopify/theme ile yükseltin.
Sıkça sorulan sorular
shopify theme check'i tek bir Liquid bölüm dosyasında çalıştırabilirim mi?
Evet. Dosya yolunu konumsal bir argüman olarak geçin: shopify theme check sections/your-section.liquid. Tek bir dosyaya kapsam belirlediğinizde, kullanılmayan bölüm tespiti gibi tüm tema kontrolleri devre dışı bırakılır, çünkü doğru sonuçlar üretmek için tam temayı okumaları gerekir.
Belirli bir Theme Check kuralını hiçbir yerde kapatmadan bir kod bloğu için nasıl devre dışı bırakabilirim?
Satır içi Liquid yorum yönergeleri kullanın: bloktan önce {% # theme-check-disable CheckName %} ve sonra {% # theme-check-enable CheckName %}. Bu, yalnızca sınırlı blok içinde adlandırılmış kontrolü bastırır ve dosya ile temamın geri kalanı tamamen lintlenmiş olarak kalır.
Tek başına theme-check gem ve CLI'sine 2024'te ne oldu?
Shopify, Shopify/theme-check Ruby gem repository'sini Temmuz 2024'te arşivledi ve tüm geliştirmeyi Shopify/theme-tools monorepo'suna taşıdı. Theme Check artık @shopify/cli'nin bir parçası olarak dağıtılır ve shopify theme check komutu aracılığıyla çalışır. macOS'ta brew upgrade shopify-cli veya diğer platformlarda npm install -g @shopify/cli @shopify/theme ile yükseltin.