stylelint выдает ошибки at-rule- * при разборе LESS-переменных - PullRequest
0 голосов
/ 28 марта 2019

Я использую stylelint в качестве плагина postcss в моей конфигурации webpack. Далее по цепочке (выполняемой после postcss-загрузчика) я также использую less-loader. Все зависимости используются в их самых последних версиях.

webpack.config.js

...
'less-loader',
{
    loader: 'postcss-loader',
    options: {
        plugins: [
            require('stylelint')({
                "extends": "stylelint-config-standard"
            })
        ]
    }
}
...

Все отлично работает, ворс выдает значимые ошибки, если они есть. Однако, так как я добавил менее переменную в нотацию camelCase, я также получаю at-rule-* ошибки:

(1:1) Expected "fadeAnimDuration:" to be "fadeanimduration:" (at-rule-name-case)
...
(1:1) Unexpected unknown at-rule "@fadeAnimDuration:" (at-rule-no-unknown)

Похоже, что когда-то это была известная проблема, но ее следовало исправить в 9.8.0 в соответствии с журналом изменений: https://github.com/stylelint/stylelint/blob/master/CHANGELOG.md#980

  • Исправлено: at-rule- * ложные срабатывания для переменных Less и миксины (# 3767).

Это строки в моем .less файле:

@fadeAnimDuration: 1480ms;
...
some selector {
    transition: background-color @fadeAnimDuration, color @fadeAnimDuration;
}

Я что-то не так делаю?

Я могу избавиться от ошибки в случае верблюда, изменив переменную на @fade-anim-duration, но вторая ошибка остается:

(1:1) Unexpected unknown at-rule "@fade-anim-duration:" (at-rule-no-unknown)

Я не хочу полностью отключать эти правила, чтобы использовать переменные LESS.

1 Ответ

0 голосов
/ 01 апреля 2019

Поскольку вы используете stylelint в качестве плагина PostCSS, я полагаю, что вам нужно вручную установить конфигурацию синтаксиса postcss-loader на postcss-less .

В качестве альтернативы, и я рекомендую этот подход, вы можете использовать stylelint-webpack-plugin и воспользоваться преимуществами переключения синтаксиса, встроенного в stylelint.

...