Использование scss в качестве таблицы стилей по умолчанию в Angular 6+ (styleExt)

По-видимому, способ объявления расширения таблицы стилей по умолчанию изменился с Angular 6 и далее. Свойство styleExt в angular.json больше не распознается.

Для новых проектов это можно установить с помощью опции в CLI --style=scss в команде new.

Однако как это изменить для существующих проектов, которые я перенес с Angular <5, или если вы забыли это сделать во время создания проекта?

Этот вопрос должен быть строго связан с критическими изменениями, внесенными в версии Angular с 5 по 6.

Возможный дубликат Angular-cli от css до scss

T04435 03.07.2018 17:47

@ T04435 Я не понимаю, почему это дубликат. Я четко заявляю, что этот вопрос касается конкретного изменения версии в Angular, которое вообще не является частью другого вопроса. Тот факт, что здесь также применимы части пересмотренных ответов, не делает вопросы одинаковыми.

Daniel Lerps 04.07.2018 10:08
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
CSS: FlexBox
CSS: FlexBox
Ранее разработчики использовали макеты с помощью Position и Float. После появления flexbox сценарий полностью изменился.
29
2
21 708
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Позиция, на которой это установлено, изменилась в angular.json. Теперь есть 2 способа установить эту опцию.

Через Angular CLI:

ng config schematics.@schematics/angular:component.styleext scss

Непосредственно в angular.json:

"schematics": {
    "@schematics/angular:component": {
      "styleext": "scss"
    }
}

Обновление Angular 9:

Обратите внимание, что начиная с Angular 9 styleext переименован в style. Итак, мы получаем:

ng config schematics.@schematics/angular:component.style scss

а также

"schematics": {
    "@schematics/angular:component": {
      "style": "scss"
    }
}

Когда я попробовал это, у меня все еще был global styles.css в виде файла css, поэтому я не мог воспользоваться интерпретацией scss. Если я попытался переименовать в styles.scss (и обновил ссылки в angular.json, сборка сломалась.

Michael Coxon 01.07.2018 02:56

@MichaelCoxon Параметр шаблона только определяет, какой тип таблицы стилей будет создан для новых компонентов. Это не влияет на существующие. Тем более глобальный styles.css. Не уверен, что вы можете использовать SCSS в этом.

Daniel Lerps 02.07.2018 09:59

Чтобы использовать глобальный styles.scss, вам нужно изменить ссылку в другом месте angular.json. Посмотрите на projects.project-name.architect.build.styles и projects.project-name.test.styles. Измените значение так, чтобы оно указывало на styles.scss вместо styles.css. Для уже созданного проекта не забудьте изменить фактические файлы.

JeffryHouser 03.07.2018 23:48

Как использовать отдельный global.scss в этом, а не style.css "defaultProject": "pareo", "schematics": {"@ schematics / angular: component": {"prefix": "app", "styleext": "scss", "styles": ["src / app / provider-portal / provider-portal.scss"]}, "@ schematics / angular: directive": {"prefix": "app"}}

juhi 03.06.2020 06:03

В соответствии с этим закрытым билетом github.com/ngrx/platform/issues/2248 с новой версией Angular CLI styleExt был заменен на style - я тестировал его в двух библиотеках, которые используют Angular и Angular CLI версии 8.

codeepic 08.07.2020 01:00

Чтобы перейти с css на scss для существующего проекта, выполните следующие действия:

В файле angular.json

  1. В детали build и в детали test замените:

    "styles": ["src/styles.css"], от "styles": ["src/styles.scss"],

  2. Заменять:

    "schematics": {}, от "schematics": { "@schematics/angular:component": { "style": "scss" } },

Using ng config schematics.@schematics/angular:component.styleext scss command works but it does not place the configuration in the same place.

В вашем проекте переименуйте ваши файлы .css в .scss

Другие вопросы по теме