Синтаксические ошибки Postcss молча

#css #sass #postcss

#css #sass #postcss

Вопрос:

Итак, в настоящее время я настраиваю проект только с postcss и полностью удаляю scss. Одна вещь, с которой я борюсь, — это отсутствие каких-либо сообщений об ошибках при сбое синтаксиса.

Так, например, я добавил плагин precss, и когда я неправильно пишу переменную:

 $somevar: #000;
.body{
  color:$oopsvar;
}
  

Очевидно, что в SCSS это выдаст ошибку и сообщит мне, что $oopsvar не существует. Но он просто анализирует его и возвращает:

 .body{
  color:$oopsvar;
}
  

Что, очевидно, недопустимо. Я добавил postcss-reporter, postcss-devtools и даже попытался посмотреть, есть ли какие-либо правила в stylelint, которые могли бы показать ошибку, но ничего.

Теперь я не уверен, что это просто проблема с плагинами, такими как precss, или что-то в целом, чего мне не хватает в postcss. Как другие люди отлаживают postcss, или люди просто проверяют браузер?

Ответ №1:

Итак, я провел некоторое расследование и пообщался с postcss gitter

Существует встроенный способ отображения предупреждений и ошибок в postcss, однако из-за подхода плагина его реализация зависит от отдельных создателей плагинов. Проблема, с которой я столкнулся с precss, которая не поддерживается, заключалась в том, что они не отображали никаких предупреждений. Мы больше продвинулись в сторону cssnext, который хорошо поддерживается, хотя синтаксис немного отличается, поскольку он использует предлагаемые переменные css, а не синтаксис scss.

Вам также понадобится postcss-reporter для получения предупреждений и ошибок, если они реализованы.

Ответ №2:

Если вы хотите найти все ошибки, вам следует использовать linter . Stylelint будет отличным выбором (на основе PostCSS).

PostCSS используется во многих инструментах CSS. Некоторые из этих инструментов используют пользовательский синтаксис. Вот почему PostCSS может анализировать пользовательский синтаксис ( $somevar: #000; анализируется как $somevar свойство).

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

1. Спасибо, stylelint довольно хорош, но точно не решил мою проблему. Да, это так, но теперь у него есть сообщение об ошибке, но не все плагины обновлены — precss является одним из них