Как исправить Angular CLI, заставляющий scss поверх sass?

#angular #sass #angular-cli

#angular #sass #angular-cli

Вопрос:

В своих проектах я обычно хочу использовать синтаксис .sass. Итак, я создал проект следующим образом:

 ng new myProject --style=sass
  

Но результатом было то, что все таблицы стилей, включая файл базовых стилей, имели расширение .scss.
Теперь, конечно, я попытался исправить это с помощью cli:

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

и непосредственно вручную меняющий содержимое в angular.json:

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

Но безуспешно. Каждый файл стилей нового компонента, который я создаю, поставляется с
.расширение scss.
Как мне это исправить?

Ответ №1:

Я считаю, что в ваших схемах нужно использовать styleext вместо style .

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

ng config schematics.@schematics/angular:component.styleext scss собирается установить ваше глобальное значение по умолчанию, которое должно добавить запись в нижнюю часть вашего angular.json файла следующим образом:

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

Однако, если у вас есть defaultProject указанное, любые схемы внутри здесь, вероятно, будут переопределены. Итак, внутри вашего проекта по умолчанию в файле angular.json обновите это style свойство в schematics на styleext :

 "projects": {
  "my-project": {
    ...
    "schematics": {
      "@schematics/angular:component": {
        "styleext": "scss"
    ...

  

После дополнительных исследований
Похоже, вы можете изменить свою версию CLI на более старую версию или дождаться обновления, которое уже в пути (исправление слилось вчера). Поддержка Sass ext была удалена, отмеченная в этом выпуске, но, похоже, она была повторно добавлена, отмеченная в этом выпуске.

Комментарии:

1. К сожалению, изменение стиля на styleext не решило проблему. Команда cli также не сработала. При создании нового компонента я запустил «сухой» запуск, и файл styles поставляется с расширением scss. Такое же поведение сохраняется даже после перезагрузки

2. Обновил ответ, чтобы предоставить вам больше информации о проблеме

3. Спасибо за ваше исследование. Очень признателен!

4. проблема решена в последней версии Angular (7.2.11)!