Угловой динамический обмен стилями SASS в зависимости от среды - PullRequest
0 голосов
/ 05 сентября 2018

Я использую Angular 6 с новым файлом angular.json, где я настроил отдельную конфигурацию. В этой новой конфигурации я заменяю свои constants.scss на constants.newconfig.scss.

Он корректно компилируется при запуске ng serve --configuration = newconfig, но по какой-то причине все еще использует исходный файл constants.scss.

Вот конфигурация по умолчанию для производства в angular.json

"configurations": {
  "production": {
  ...
  "fileReplacements": [
    {
      "replace": "src/environments/environment.ts",
      "with": "src/environments/environment.prod.ts"
    }
  ]
  ...

и вот что я добавил.

"configurations": {
  "production": { ...Prod stuff... },
  "newconfig": {
  ...
  "fileReplacements": [
    {
      "replace": "src/environments/environment.ts",
      "with": "src/environments/environment.newconfig.ts"
    },
    {
      "replace": "src/constants.scss",
      "with": "src/constants.newconfig.scss"
    }
  ]
  ...

Будет ли это как-то связано с тем, как webpack прекомпилирует sass, поэтому к тому времени, когда Angular заменит файл констант, webpack уже изменил файловую систему.


Обновление

  • Мои constants.scss импортируются в начало моего корневого стиля .scss
  • Кажется, используется правильный файл sass для замены, если я заменяю файл sass для конкретных компонентов, используя описанный выше метод. Поэтому я не уверен, что webpack и угловой компилятор работают в другом порядке для таблиц стилей, специфичных для компонентов

1 Ответ

0 голосов
/ 14 сентября 2018

Вам также нужно обновить @angular-devkit/build-angular, чтобы оно заработало:

ng update @angular-devkit/build-angular
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...