Создание приложения Angular с помощью Angular CLI позволяет выбрать формат таблицы стилей: CSS (по умолчанию), SCSS, SASS, LESS и Stylus.
SASS - это препроцессорный язык сценариев, который интерпретируется или компилируется в каскадные таблицы стилей (CSS), которые имеют два синтаксиса : новый синтаксис SCSS и традиционный синтаксис SASS.
Использование языка препроцессора, такого как SCSS, позволяет пользователям применять сложные и гибкие тактики, такие как переменные, вложение, миксины, наследование. С помощью SCSS вы можете легко настроить иерархию стилей своего приложения Angular с глобальными переменными, миксинами и модулями и использовать их в любой таблице стилей с @import
.
В этом посте я дам вам пошаговое руководство по обновлению вашего Angular с формата стилей CSS по умолчанию до SCSS. Порядок этого руководства показан ниже:
Основы:
- Создайте новый Angular с таблицей стилей CSS по умолчанию
- Обновить схему конфигурации Angular
- Переименуйте все файлы .css в .scss и styleUrls компонента.
Передовой:
4. Настройте иерархию таблиц стилей SCSS.
5. Используйте Bootstrap SCSS.
Вы можете скачать код из моего репозитория на Github: angular-scss.
1. Создайте новое приложение Angular через Angular CLI.
Выполните команды Создайте новый проект angular с компонентами
ng new angular-scss cd angular-scss ng g component scss-sample
Обновите app.component.html
<app-scss-sample></app-scss-sample>
Запустите приложение Angular с помощью команды ng serve
и open localhost:4200
2. Обновите схему конфигурации Angular.
Выполните следующую команду под корневым путем приложения Angular:
ng config schematics.@schematics/angular:component.styleext scss
После этой команды вы увидите эти изменения ниже в своем файле angular.json:
"schematics": { "@schematics/angular:component": { "styleext": "scss" } }
3. Переименуйте файлы .css в .scss & Components ’styleUrls.
3.1 Удалить / node_modules / папку
Запустите rm -r -f node_modules
, чтобы удалить папку node_modules и все файлы в ней. Это предотвратит любое возможное переименование в файлы .css в ваших node_modules.
3.1. Создайте rename.sh под корневым путем вашего приложения Angular
Запустите vim rename.sh
и скопируйте код переименования ниже
#!/bin/bash
for file in $(find . -name "*$1");
do
mv "$file" "${file%$1}$2"
done
Введите esc
и :wq
, чтобы записать и сохранить этот файл.
Запустите ./rename.sh .css .scss
под корневым путем приложения, чтобы переименовать все файлы .css в файлы .scss.
3.3 Обновление styleUrls компонентов
Замените styleUrls компонентов с * .component.css на * .component.scss.
В Visual Studio Code вы можете использовать Crtl+Shift+H
в Windows или Cmd+Shift+F
в MacOS для глобальной замены .component.css
на .component.scss
3.4 Обновление массива стилей в файле angular.json
Откройте файл angular.json и измените точку входа в таблицы стилей.
Измените массив стилей в angular.json с
"styles": [ "src/styles.css" ]
to
"styles": [ "src/styles.scss" ]
3.5 Удалите rename.sh и переустановите пакеты npm.
Запустите rm rename.sh
, чтобы удалить файл rename.sh.
Запустите npm install
, чтобы переустановить все пакеты npm.
Запустите ng serve
и open localhost:4200
Вы можете проверить, работает ли SCSS, скопировав этот код стиля SCSS в файл стиля компонента scss-sample.component.scss.
$font-color: #fff; $background-color:#000; p { color: $font-color; background-color: $background-color; }
Если вы видите свое приложение так, как показано ниже, это означает, что ваше приложение Angular было успешно обновлено.
4. Настройте иерархию таблиц стилей SCSS.
В рабочем режиме нам нужно будет настроить четкую иерархию таблиц стилей, чтобы лучше управлять стилями нашего приложения. Как настроить собственную иерархию таблиц стилей, зависит от ваших предпочтений. Что касается меня, я хотел бы создать папку /styles/
в /src
и создать в ней файлы _20 _, _ 21_ и index.scss
.
В этом случае вы можете легко управлять своими глобальными переменными и миксинами внутри этих двух файлов и импортировать эти два файла в файл index.scss. Чтобы использовать объявленные переменные и миксины, просто @import '../../styles/index.scss';
в scss-файле вашего компонента.
_variable.scss
$font-color: #fff; $background-color:#000;
_mixins.scss
@mixin hover-effect { &:hover, &:focus { border: 1px solid red; } }
index.scss
@import './variables'; @import './mixins';
scss-sample.component.scss
@import '../../styles/index.scss'; p { color: $font-color; background-color: $background-color; @include hover-effect }
Вы увидите эффекты, как показано ниже:
5. Используйте переменные Bootstrap SCSS.
Чтобы использовать Bootstrap scss в приложении Angular, вы можете либо импортировать компонент scss начальной загрузки с синтаксисом @import, либо импортировать всю таблицу стилей начальной загрузки в файл styles.scss.
Например, если вы хотите использовать всю таблицу стилей начальной загрузки:
Сначала установите начальную загрузку, запустив npm install bootstrap.
После этого импортируйте начальную загрузку в styles.scss
, добавив эту строку ниже:
@import ‘../node_modules/bootstrap/scss/bootstrap.scss’;
Теперь бутстрап был добавлен в ваше приложение Angular, и вы можете использовать некоторые встроенные классы начальной загрузки, такие как float-left
, float-right
, text-left
, text-right
и т. Д.
например scss-sample.component.html:
<p class="text-right">scss-sample works!</p>
Просмотр в браузере:
Заключение
Добавление языка таблиц стилей препроцессора дает больше гибкости, чтобы сделать ваше приложение ярким, и упрощает управление переменными таблицы стилей. Почему бы не попробовать?
Ура и спасибо за чтение!
Другие сообщения:
- Самый простой способ создания углового компонента с изменяемым размером и перетаскиванием
- Превратите Angular в статический веб-сайт и разместите его на AWS S3 с вашим личным доменом
- Развертывание бессерверного Angular с рендерингом на стороне сервера на AWS Lambda.
- Будьте осторожны при передаче асинхронной функции в качестве параметра
- Обработка ошибок асинхронной функции JavaScript - это не то, о чем вы думаете
- Создайте бесплатную бессерверную контактную форму с помощью Gmail, Node и AWS Lambda