Я использую 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 и угловой компилятор работают в другом порядке для таблиц стилей, специфичных для компонентов