Angular 6 style.scss не применяется глобально к компонентам

Я создал новый проект cli с параметром --style=sass, а затем определил некоторые переменные в файле src / sass / styles.scss (никакие партиалы не созданы), поэтому они должны быть определены глобально, верно? поэтому, когда я попытался использовать их в home.component.scss, я получил эту ошибку https://imgur.com/a/IckJL14

Затем я добавил черную рамку, чтобы убедиться, что нормальный CSS работает и работает, проблема в sass, вот angular.json

 "styles": [
          "src/sass/styles.scss",
          "./node_modules/bootstrap/dist/css/bootstrap.min.css",
          "./node_modules/malihu-custom-scrollbar- 
           plugin/jquery.mCustomScrollbar.css",
          "./node_modules/animate.css/animate.min.css",

редактировать: затем я создал частичный _variables.scss и в component.scss я написал @import '~sass/variable'; после импорта их в style.scss, например, @import './variables'; в соответствии с руководством по этой ссылке: https://scotch.io/tutorials/using-sass-with-the-angular-cli до сих пор не работает.

3 ответа

Ответ состоял в том, чтобы просто добавить полный путь к component.scss следующим образом: @import "src/sass/~variables.scss"; вместо просто @import "~variables.scss";

Если это правильно, что вы использовали --style=sass Опция на init проекта, тогда это может быть проблемой. Если вы собираетесь использовать файлы.scss (что я бы порекомендовал), то вам следовало бы использовать --style=scss,

Чтобы исправить это сейчас, вы можете запустить команду ng set defaults.styleExt scss,

Лучший подход для достижения этой цели - создать файл переменной и импортировать этот файл в ваши файлы scss.

Вот так:

@import "../../variables.scss";

или же

@import "~variables.scss";

И в вашем файле styles.scss вы просто поместите ссылку на файл переменной!

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