Moja aplikacja AngularJS 2 ma kilka plików stylu, które łączę z zadaniem gulp
. Wszystko w porządku, ponieważ trafią do dużego pliku, który wysyłam do przeglądarki w trakcie produkcji. Moje pytanie dotyczy atrybutu Angular 2 @Component
i jego styleUrls
.Styl AngularJS 2: Co słychać w konkatenacji?
@Component({
selector: 'hero',
templateUrl: 'hero/hero.template.html',
styleUrls: ['hero/hero.component.css'],
inputs: ['hero']
})
Dzięki cień DOM emulacji w trybie domyślnym (emulowane) style zdefiniowane w hero/hero.component.css
są stosowane tylko do składnika, tak jak chcę. Moje pytanie brzmi, co dzieje się z konkatenacją? Nie mogę połączyć wszystkich plików CSS podanych w kodzie wielokrotnym styleUrls
, ponieważ pokonamy cel enkapsulacji: style komponentu wyciekłyby do całego dokumentu. Nie chcę jednak wykonywać wywołań w produkcji dla każdego pliku CSS, którego potrzebuje dany komponent. Jak mogę połączyć te style (i ewentualnie je zminimalizować), aby klient uzyskał je wszystkie podczas jednego połączenia i nadal zachował enkapsulację?
Cóż, używam maszynopisu i npm do pracy z kątem 2 i zauważyłem, że za kulisami wszystkie styleUrls są automatycznie pobierane jako pierwsze, tworzone w linii prostej, a następnie wysyłane do przeglądarek. Czy jest jakiś problem z tym podejściem? – mehulmpt
masz na myśli dla każdego komponentu określającego 'styleUrls' istnieje żądanie pobierania każdego z plików, prawda? To działa, zastanawiałem się jednak, czy można go w jakiś sposób zredukować do pojedynczego połączenia (dla środowisk produkcyjnych). –
Uważam, że style nie powinny być łączone, ale należy je łączyć z komponentami, np. za pośrednictwem gulp-inline-ng2-template. – estus