2016-10-02 30 views
5

Chciałbym wykonać kolejną próbę użycia kompilacji Ahead of of Time Angular 2.Czy kompilator Angular 2 Ahead-of-Time obsługuje arkusze stylów SASS?

Będzie to wymagać znaczącego refaktoryzacji z mojej strony, ponieważ moja obecna konfiguracja używa niestandardowego procesu kompilacji, który będzie musiał zostać zmieniony.

Zanim zacznę, muszę wiedzieć: czy po połączeniu z zewnętrznymi plikami .scss w metadanych styleUrls, czy działa kompilator AoT?

@Component({ 
    ... 
    styleUrls:['./app.component.scss'], 
}) 
export class AppComponent {} 

Albo powinienem najpierw przekonwertować wszystkie moje style .css oraz link do arkusza stylów CSS zamiast tego?

The readme nie omawia tego.

+0

Może już nie potrzebujesz tego, ale napisałem rozwiązanie twojego problemu. Twoje zdrowie! –

Odpowiedz

4

Pliki SASS (.scss) nie zostały pomyślnie przetworzone przez kompilator z wyprzedzeniem (ngc). Miałem przekonwertować moje arkusze stylów do .css pierwszej

+0

To też wymyśliłem (że ngc ma problemy z przetwarzaniem plików sass), ale zastanawiam się, jak przekonwertować te pliki sass do plików css, a mimo to zachować strukturę projektu bez zmian (np. być użyte w tym kroku). Jak to zrobiłeś i/lub czego używałeś? –

+0

@ChristopheVidal Szablon każdego komponentu znajduje się w pliku '.scss' w tym samym katalogu. "StyleURLs" komponentu to ".css". Podczas kroków kompilacji plik sass jest konwertowany na css, a css zostaje wstawiony. Aby to osiągnąć, używam konfiguracji [kątowy seed] (https://github.com/mgechev/angular-seed/wiki/Working-with-SASS). – BeetleJuice

+0

@BeetleJuiceCzy wiesz, jak to zrobić z kanciastym cli? –

0

@BeetleJuice odpowiedź nie jest całkowicie poprawne (lub nie jest już prawidłowa) jedyną rzeczą, którą musisz zrobić, to zapewnić ładowarka na Sass/plików SCSS robi tak w swoim webpack.config.js:

{ test: /\.sass$/, loaders: ['raw-loader', 'sass-loader']} 

i po tym można dołączyć pliki Sass bezpośrednio wewnątrz komponentów robi:

styleUrls: ['app.style.sass'] 

do tego trzeba zainstalować Sass-ładowarka zrobić :

npm install sass-loader node-sass webpack --save-dev 
+0

Jak to się ma do kompilacji z wyprzedzeniem? Jest to prosty pakiet sieciowy – Dethariel

+0

Jeśli korzystasz z wtyczki Webpack (AotPlugin), możesz użyć zwykłego pakietu sieciowego do obsługi plików sass. –

+1

Cześć DaveDo masz tego przykład – LintonB