Kątowe opcje CLI SASS
Jestem nowy w Angular i pochodzę ze społeczności Ember. Próbuję użyć nowego Angular-CLI opartego na Ember-CLI.
Muszę wiedzieć, jak najlepiej poradzić sobie z SASS w nowym projekcie Angular. Próbowałem użyćember-cli-sass
repo, aby sprawdzić, czy to będzie grać, ponieważ wiele podstawowych składników Angular-CLI są uruchamiane z modułów Ember-CLI.
Nie zadziałało, ale nie jestem pewien, czy coś źle skonfigurowałem.
Również, co jest najlepszym sposobem, aby organizować style w nowym projekcie Angular? Byłoby miło mieć plik sass w tym samym folderze co komponent.
14 answers
Podczas tworzenia projektu z angular cli spróbuj tego:
ng new My_New_Project --style=sass
Generuje wszystkie komponenty z predyfikowanymi plikami sass.
Jeśli chcesz złożyć scss utwórz swój projekt za pomocą :
ng new My_New_Project --style=scss
Jeśli zmieniasz istniejący styl w swoim projekcie
ng set defaults.styleExt scss
Cli zajmuje się resztą.
Dla Najnowszych Wersji
Dla Angular 6, aby ustawić nowy styl w istniejącym projekcie za pomocą CLI:
ng config schematics.@schematics/angular:component.styleext scss
Lub bezpośrednio w kąt.json:
"schematics": {
"@schematics/angular:component": {
"styleext": "scss"
}
}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-06-18 19:37:59
Aktualizacja dla Angular 6 +
-
Nowe Projekty
Kiedy generowanie nowego projektu Z Angular CLI, określ pre-procesor css jako
-
Użyj składni SCSS
ng new sassy-project --style=scss
-
Użyj składni SASS
ng new sassy-project --style=sass
-
-
Aktualizacja istniejącego projektu
Ustaw domyślny styl w sprawie istniejącego projektu przez running
-
Użyj składni SCSS
ng config schematics.@schematics/angular:component.styleext scss
-
Użyj składni SASS
ng config schematics.@schematics/angular:component.styleext sass
Powyższe polecenie zaktualizuje plik obszaru roboczego (angular.json) z
"schematics": { "@schematics/angular:component": { "styleext": "scss" } }
Gdzie
styleext
Może byćscss
lubsass
zgodnie z wyborem. -
Oryginalna odpowiedź (Dla kątowej
Nowe projekty
Dla nowych projektów możemy ustawić opcje --style=sass
lub --style=scss
według pożądanego smaku SASS / SCSS
-
Użyj składni SASS
ng new project --style=sass
-
Użyj składni SCSS
ng new project --style=scss
Następnie zainstaluj node-sass
,
npm install node-sass --save-dev
Aktualizacja istniejących projektów
Aby angular-cli
aby skompilować pliki sass za pomocą node-sass
, musiałem uruchomić,
npm install node-sass --save-dev
Który instaluje node-sass
. Wtedy
-
Dla SASS składnia
ng set defaults.styleExt sass
-
Dla składni SCSS
ng set defaults.styleExt scss
Aby ustawić domyślny stylext na sass
(lub)
Zmień styleExt
na sass
lub scss
dla żądanej składni w .angular-cli.json
,
-
Dla składni SASS
"defaults": { "styleExt": "sass", }
-
Dla składni SCSS
"defaults": { "styleExt": "scss", }
Chociaż generował błędy kompilatora.
ERROR in multi styles
Module not found: Error: Can't resolve '/home/user/projects/project/src/styles.css' in '/home/user/projects/project'
@ multi styles
Który został naprawiony przez zmianę linii z .angular-cli.json
,
"styles": [
"styles.css"
],
Do albo,
-
Dla składni SASS
"styles": [ "styles.sass" ],
-
Dla składni SCSS
"styles": [ "styles.scss" ],
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-07-03 14:08:54
Cytowane przez urzędników github repo tutaj -
Aby użyć jednego wystarczy zainstalować na przykład
npm install node-sass
I zmienić nazwę .pliki css w Twoim projekcie do .scss lub .sass. Zostaną one skompilowane automatycznie. Argument opcji Angular2App zawiera opcje sassCompiler, lessCompiler, stylusCompiler i compassCompiler, które są przekazywane bezpośrednio do odpowiednich preprocesorów CSS.
Zobacz tutaj
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-07-27 20:48:45
Powiedz angular-cli, aby zawsze domyślnie używał scss
Aby uniknąć przekazywania --style scss
za każdym razem, gdy generujesz projekt, możesz dostosować domyślną konfigurację angular-cli globalnie, za pomocą następującego polecenia:
ng set --global defaults.styleExt scss
Należy pamiętać, że niektóre wersje angular-cli zawierają błąd z odczytaniem powyższej flagi globalnej (patrz link ). Jeśli Twoja wersja zawiera ten błąd, Wygeneruj projekt za pomocą:
ng new some_project_name --style=scss
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-05-25 10:13:02
Jak Mertcan powiedział, najlepszym sposobem użycia scss jest stworzenie projektu z tą opcją:
ng new My_New_Project --style=scss
Angular-CLI dodaje również opcję zmiany domyślnego preprocesora css po utworzeniu projektu za pomocą polecenia:
ng set defaults.styleExt scss
Więcej informacji można znaleźć tutaj dla ich dokumentacji:
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-11-17 16:22:42
Zauwazylem, ze bardzo niecierpliwie mam cie w przenoszeniu do plików scss!!! Należy przejść z prostej: styleUrls: ['app.component.scss']
do styleUrls: ['./app.component.scss']
(dodaj ./
) w app.component.ts
Co robi ng, gdy generujesz nowy projekt, ale pozornie nie, gdy tworzony jest projekt domyślny. Jeśli podczas kompilacji ng widzisz rozwiązywanie błędów, Sprawdź ten problem. Zajęło mi to tylko ~ 1 godzinę.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-08-15 11:22:04
Best could be ng new myApp --style=scss
Wtedy Angular CLI utworzy dla Ciebie dowolny nowy komponent z scss ...
Zauważ, że używanie scss
nie działa w przeglądarce, Jak zapewne wiesz.. musimy więc coś skompilować do css
, z tego powodu możemy użyć node-sass
, zainstalować go jak poniżej:
npm install node-sass --save-dev
/ Align = "left" /
Jeśli korzystasz z webpacka, przeczytaj tutaj:
Wiersz poleceń w folderze projektu, w którym Twoje istniejące paczka.json jest:
npm install node-sass sass-loader raw-loader --save-dev
W
webpack.common.js
wyszukaj "rules:" i dodaj ten obiekt do koniec tablicy reguł (nie zapomnij dodać przecinka na końcu poprzedni obiekt):
{
test: /\.scss$/,
exclude: /node_modules/,
loaders: ['raw-loader', 'sass-loader'] // sass-loader not scss-loader
}
Następnie w składniku:
@Component({
styleUrls: ['./filename.scss'],
})
Jeśli chcesz mieć globalną obsługę CSS to na najwyższym poziomie komponentu (prawdopodobnie app.komponent.ts) Usuń enkapsulację i dołącz SCSS:
import {ViewEncapsulation} from '@angular/core';
@Component({
selector: 'app',
styleUrls: ['./bootstrap.scss'],
encapsulation: ViewEncapsulation.None,
template: ``
})
class App {}
Z rozrusznika kątowego tutaj .
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-04-11 23:24:17
ng set --global defaults.styleExt=scss
jest przestarzały od ng6. Otrzymasz tę wiadomość:
Get / set zostały wycofane na rzecz polecenia config
Powinieneś użyć:
ng config schematics.@schematics/angular:component '{ styleext: "scss"}'
Jeśli chcesz kierować konkretny projekt (zastąp {projekt} nazwą Twojego projektu):
ng config projects.{project}.schematics.@schematics/angular:component '{ styleext: "scss"}'
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-05-29 10:00:11
Angular-CLI jest zalecaną metodą i jest standardem w społeczności Angular 2+.
Kreta nowy projekt z SCSS
ng new My-New-Project --style=sass
Konwersja istniejącego projektu (CLI mniej niż V6)
ng set defaults.styleExt scss
(musi zmienić nazwę wszystkich .pliki css ręcznie przy użyciu tego podejścia, nie zapomnij zmienić nazwy w plikach składowych)
Konwersja istniejącego projektu (CLI większe niż v6)
- Zmień nazwę wszystkich plików CSS na SCSS i aktualizuj komponenty, które się do nich odwołują.
- Dodaj następujący klucz" Schematy " kąta.json (Zwykle linia 11):
"@schematics/angular:component": {
"styleext": "sass"
}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-05-08 23:02:19
Poniższe powinny działać w projekcie angular CLI 6. Czyli Jeśli otrzymujesz:
Get / set zostały wycofane na rzecz polecenia config.
npm install node-sass --save-dev
Then ( upewniając się, że zmienisz nazwę projektu )
ng config projects.YourPorjectName.schematics.@schematics/angular:component.styleext sass
Aby uzyskać domyślną nazwę projektu użyj:
ng config defaultProject
Jednakże: Jeśli migracja projektu z
Nieprawidłowy znak JSON: "s" at 0: 0
Dlatego wymagana będzie ręczna edycja angular.json
.
Będziesz chciał, aby wyglądało to mniej więcej tak (biorąc pod uwagę właściwość styleex):
...
"projects": {
"Sassy": {
"root": "",
"sourceRoot": "src",
"projectType": "application",
"prefix": "app",
"schematics": {
"@schematics/angular:component": {
"styleext": "scss"
}
}
...
Wydaje mi się to zbyt skomplikowanym schematem. ¯_(ツ)_/¯
Będziesz teraz musiał zmienić wszystkie swoje pliki css / less, aby były scss i zaktualizować wszelkie odniesienia w komponentach itp., ale powinieneś być gotowy.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-06-01 15:09:38
Ustaw jako domyślną globalną
ng set defaults.styleExt=scss --global
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-02-12 11:00:45
Integracja preprocesora CSS Angular CLI obsługuje wszystkie główne preprocesory CSS:
Aby użyć tych preprocesorów wystarczy dodać plik do stylu komponentu:
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.scss']
})
export class AppComponent {
title = 'app works!';
}
Podczas generowania nowego projektu możesz również zdefiniować, które rozszerzenie chcesz dla plików stylów:
ng new sassy-project --style=sass
Lub ustawić domyślny styl w istniejącym projekcie:
ng config schematics.@schematics/angular:component.styleext scss
Uwaga: @schematics / angular jest domyślnym schematem dla Angular CLI
Ciągi stylów dodane do [email protected] tablica musi być napisana w CSS, ponieważ CLI nie może zastosować pre-procesora do stylów wbudowanych.
Na podstawie dokumentacji kątowej https://github.com/angular/angular-cli/wiki/stories-css-preprocessors
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-06-04 15:54:17
Próbowałem zaktualizować mój projekt, aby użyć sass używając tego polecenia
Ng set defaults.styleExt scss
Ale mam to
Get / set zostały wycofane na rzecz polecenia config.
- Angular CLI: 6.0.7
- node: 8.9.0
- OS: linux x64
- kąt: 6.0.3
Więc usunąłem mój projekt (ponieważ dopiero zaczynałem i nie miałem kodu w moim projekcie) i stworzyłem nowy z sass początkowo set
Ng new my-sassy-app -- style = scss
Ale byłbym wdzięczny, gdyby ktoś mógł udostępnić sposób na aktualizację istniejącego projektu, ponieważ byłoby miło.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-06-05 08:12:16
Krok 1. Instalacja pakietu bulma przy użyciu npm
npm install --save bulma
Krok 2. Otwarty kątowy.json i update po kodzie
...
"styles": [
"node_modules/bulma/css/bulma.css",
"src/styles.scss"
],
...
To wszystko.
Aby łatwo wyeksponować narzędzia Bulmy, dodaj stylePreprocessorOptions do angular.json.
...
"styles": [
"src/styles.scss",
"node_modules/bulma/css/bulma.css"
],
"stylePreprocessorOptions": {
"includePaths": [
"node_modules",
"node_modules/bulma/sass/utilities"
]
},
...
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-09-01 10:40:10