Geliştirici modunda hangi derleme komutlarına ihtiyaç vardır ve ne zaman?


24

Biri Magento 2 geliştirici modunda hangi derleme komutlarının ne zaman çalıştırılacağı konusunda bana talimat verebilir mi? Henüz doğru anladı mı emin değilim.

Devdocs'ta, geliştirici modu aşağıdaki şekilde açıklanmıştır:

  • Statik görünüm dosyaları önbelleğe alınmaz; her çağrıldığında Magento pub / static dizinine yazılırlar

Bu, pub / static içindeki her bir dosyanın istendiğinde üretildiği ve hiç aramanıza gerek olmadığı anlamına mı geliyor setup:static-content:deploy? Bu benim deneyimlerimle çelişiyor. Veya herhangi bir dosyayı silebilir miyim ve bunlar yenilenecek mi? Ayrıca, resimler, CSS ve JS dosyaları farklı şekilde ele alınmış gibi görünüyor.

Geliştirici modu dokümantasyon sayfası, kod derleme hakkında hiçbir şey söylemez, ancak bence de bir fark olduğunu düşünüyorum, bu nedenle dosyalarda yapılan setup:di:compiletüm değişikliklerden sonra çalıştırmak gerekli olmadı di.xml. Bu doğru mu ve eğer öyleyse, kod oluşturma geliştirici modunda nasıl çalışır?

Başka bir deyişle: önbellek bir yana, hangi komutlardan sonra hangi komutları çalıştırmam gerekir?

Yanıtlar:


27

Dikkat: Geliştirici modunda silme pub/staticmekanizmasını kıracağını, çünkü .htaccesssihirbazı bu klasörde yapan dosyadan kurtulduğunuzu gördüm .

Eğer devam edersek pub/static/.htaccessgeliştirici modunda dosyayı herhangi derleme komutu çalıştırmak gerekmez: Magento kısa sürede de istenen şekilde dosyalara sembolik yaratacaktır. Bu, önbelleği devre dışı bırakmanız koşuluyla statik varlıklarda yapılan değişikliklerin hemen görüneceği anlamına gelir.

Bunun yerine pub/static/frontendveya silebilirsiniz pub/static/adminhtml.

Gelen varsayılan modu varlıkları olan materialised içinde pub/staticilk isteği üzerine (kopyalanamaz sembolik olarak değil) oluşturulur, yani alt klasör. Onları değiştirirseniz, güncellemeleri için önbelleği temizlemeniz gerekir.

In üretim modu varlıklar çalıştırmak kadar (talep üzerine 404 HTTP hatası neden olan) gerçekleştirilmez bin/magento setup:static-content:deploykomutu.

Umarım yardımcı olur.


DI derlemesi ne olacak?
Erfan

@Erfan daha kesin olarak ne kastediyorsunuz?
Alessandro Ronchi

2
Buradaki soru ayrıca, konuşlandırma modunun DI derlemesi üzerindeki etkisi hakkında sorgular. Sadece hızlı bir test yaptım ve geliştirici modundaysanız, değişikliklerin di.xmlgösterilmesi için DI'yi derlemenize gerek yok (her seferinde sayfa anında anında kod oluşturma işlemi yapılmış mı?) Zaten iyi cevabınıza iyi bir katkı olacağını düşündüm!
Erfan

Haklısın @Erfan
Alessandro Ronchi

1+ Teşekkürler kardeşim. Bir cazibe gibi çalıştı. Değişikliklerimi geliştirici modunda bile daha az css için almak için komutları tekrar tekrar çalıştırmak konusunda çok kötü bir deneyim yaşadım. .Htaccess'i başka bir projeden kopyaladım ve belirtilen yere yapıştırdım. Khalaaas!
Ömer Yousaf,

4

Deneyimime göre, geliştirici modunda kod / statik dosya üretimi için herhangi bir komut çalıştırmanıza gerek yoktur.

Statik dosyalar oluşturulmadıysa, başka bir sorun olabilir.

İlk görüşte bunun için iki sebep görüyorum:

  • Geliştirici modu düzgün çalışmıyor. belki aktivasyon nedense başarısız oldu
  • pub / static.php üzerindeki statik dosyaların yeniden yazılması çalışmıyor

1
Pub / static'taki daha az dosyam yeniden oluşturulmuyor. Bu sorunu anladın mı? O otomatik regenerate sağlamak için nasıl
mrtuvn

Geliştirici modunun etkin olması ve yeniden yazma çalışmalarının yapılması önemlidir; çünkü statik dosyalara yapılan herhangi bir istek, önce pub / static.php dosyasına yeniden yazılır;
David Verholen

4

Bu, pub / static içindeki her bir dosyanın istendiğinde üretildiği ve hiç aramanıza gerek olmadığı anlamına mı geliyor setup:static-content:deploy? Bu benim deneyimlerimle çelişiyor. Veya herhangi bir dosyayı silebilir miyim ve bunlar yenilenecek mi?

Evet. Ancak deneyimlerime göre bu çoğu zaman işe yaramıyor. Bir böcek olabilir. Daha iyi bir çözüm, pub/staticstatik dosyayı (js, css, html vb.) Değiştirdiğinizde bile geliştirici modunu etkinleştirmiş olsanız bile içeriği silmek ve statik içeriği tekrar dağıtmaktır. Bu konuda kendi sorum.


Görme şekline bağlı. Setup: static-content: değişiklik yaptığınız her seferinde konuşlandırmak istiyorsanız, bir projeyi bitirmeniz yıllar alır; temelde yalnızca bir dosyayı güncellerken mağazanız için her bir dosyayı oluşturuyorsunuz. Bu yüzden benim çözümüm, pub / static içindeki dosyaların üzerine yazmak ve değişikliklerimi görmek için önbelleği temizlemekti. Sonuçlarımdan memnun kaldıktan sonra, ana dosyalarımın üzerine yazmak için temama veya özel modül dosyalarına gidip daha sonra setup: static-content: statik dosyalarımı güncellemek için kullanacağım.
Wolfgang Leon

4

Sadece üç farklı mod arasında netleştirmek için (kaynak: Magento U Temelleri kursu). Kalın, sorunuzla ilgili özel noktalar.

Geliştirici modu

  • Statik dosya materyalizasyonu etkin değil.
  • Tarayıcıda görüntülenen yakalanmamış istisnalar
  • Hata işleyicide atılan istisnalar, kaydedilmemiş
  • Sistem girişi var/report, oldukça ayrıntılı.

Özelleştirmeler veya uzantılar geliştirirken Geliştirici modunu kullanmalısınız. Bu modun ana yararı, hata mesajlarının sizin görebilmenizdir. Performans üzerindeki etkisi nedeniyle üretimde kullanılmamalıdır. Geliştirici modunda, statik görünüm dosyaları her istendiğinde oluşturulur. pub/staticDizine yazılır , ancak bu önbellek kullanılmaz. Bunun büyük bir performans etkisi vardır, ancak bir geliştiricinin dosyaları görüntülemek için yaptığı herhangi bir değişiklik anında görülür.

Yakalanmamış istisnalar, kaydedilmek yerine tarayıcıda görüntülenir. Bir olay abonesi çağrılamadığında bir istisna atılır.

Sistem var/reportgirişi bu modda oldukça ayrıntılıdır.

Üretim modu

  • Üretim sistemine yayılma aşaması; en yüksek performans
  • Özel durumlar kullanıcıya gösterilmez - yalnızca günlüklere yazılır.
  • Bu mod statik dosya materyalizasyonunu devre dışı bırakır.
  • Magento docroot salt okunur izinlere sahip olabilir.

Bir üretim sunucusuna dağıtıldıktan sonra Magento'yu Üretim modunda çalıştırmalısınız.

Magento 2'de üretim modu en yüksek performansı sağlar.

Bu modun en önemli yönü, hataların dosya sistemine kaydedilmesi ve asla kullanıcıya gösterilmemesidir. Bu modda, istendiğinde statik görünüm dosyaları anında oluşturulmaz; bunun yerine, pub/statickomut satırı aracını kullanarak dizine dağıtılmalıdır . Oluşturulan sayfalar, dağıtılan sayfa kaynaklarına doğrudan bağlantılar içerecektir.

Dosyaları görüntülemek için yapılacak herhangi bir değişiklik, dağıtım aracını tekrar çalıştırmayı gerektirir.

Görünüm dosyaları CLI aracı kullanılarak dağıtıldığından, web kullanıcısının yazma erişimine sahip olması gerekir. Magento pub/staticdizini, herkes tarafından erişilebilen bir sunucuda daha güvenli bir kurulum olan salt okunur izinlere sahip olabilir.

Varsayılan mod

  • Başka hiçbir mod belirtilmediğinde kullanılır
  • Kullanıcının istisnalarını gizler ve günlük dosyalarına yazar.
  • Statik dosya materyalizasyonu etkin.
  • Tavsiye edilmez / üretim için optimize edilmemiştir: önbellekleme performansı olumsuz etkiler.

Adından da anlaşılacağı gibi, Varsayılan mod, başka bir mod belirtilmemişse Magento yazılımının nasıl çalıştığını gösterir.

Bu modda, hatalar dosyalara kaydedilir var/reportsve bir kullanıcıya gösterilmez. Statik görünüm dosyaları anında gerçekleştirilir ve ardından önbelleğe alınır.

Geliştirici modunun aksine, oluşturulan statik görünüm dosyaları temizlenene kadar görünüm dosyası değişiklikleri görünmez.

Varsayılan mod, bir üretim ortamı için, önceden oluşturulmuş ve dağıtmak yerine, anında oluşturulan statik dosyaların olumsuz performans etkisinden dolayı optimize edilmemiştir .

Başka bir deyişle, anında statik dosyalar oluşturmak ve bunları önbelleğe almak, statik dosya oluşturma komut satırı aracını kullanarak oluşturmaktan daha büyük bir performans etkisine sahiptir.

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.