Производственная сборка Angular7 неправильно компилирует стили SASS - PullRequest
0 голосов
/ 22 февраля 2019

Я использую этот миксин для создания наклонных блоков в макете моего приложения.Это работает хорошо, пока я не скомпилирую приложение (ng b --prod) и загрузу его в AWS.Почему-то это не работает так же, как в разработке, вместо этого:

clip-path: polygon(0 0, 100% calc(0% + 7vw), 100% 100%, 0 100%);

Я получаю это:

clip-path: polygon(0 calc(0 + 7vw),100% 0,100% 100%,0 100%);

, что является недопустимым значением, поэтому полученные блоки снова выглядят очень прямоугольными.Хотя я могу (и, скорее всего, буду) просто определять свои собственные стили для этого, я хотел бы найти причину этого странного поведения.

Кто-нибудь знает, как компиляция SASS для dev и prod отличается в Angularи как это исправить?

Вот мой angular.json на случай, если это актуально.

Обновление

Так что я определил свои собственные классы с явным корректнымзначения и по-прежнему Angular убивает их в скомпилированной версии.

1 Ответ

0 голосов
/ 22 февраля 2019

Таким образом, оказывается, что это ошибка в angular-cli, исправление состояло в том, чтобы изменить настройки в angular.json:

"extractCss": false

При этом проблема, похоже, исчезладля этой конкретной проблемы, хотя могут быть и другие хитрые ошибки, которые я еще не заметил.

Один побочный эффект, который я заметил, заключается в том, что компилятор теперь жалуется:

WARNING in budgets, maximum exceeded for initial. Budget 2 MB was exceeded by 36.3 kB.

Ну да ладно, мне придется с ним покататься.

Здесь проблема, связанная с github, которая по какой-то причине закрыта, хотя проблема все еще встречается,

UPD

Как я и подозревал, это не реальное исправление.Конечно, он работает с заменой классов, которую я сделал, но, пытаясь переключиться обратно на миксин, я получаю это значение:

polygon(0 0,100% calc(0 + 7vw),100% 100%,0 100%)

здесь отсутствует знак%: calc(0 + 7vw).

Так что это можно считать только частичным решением.

...