Stylelint
Лично для меня stylelint — это инструмент линтера кода css, который можно использовать в сочетании с nodejs и cli. После csslinter и других линтеров имеет функцию плагина, и хорошо интегрируются плагины postcss, webpack и т.д.
Если инструмент обнаружения и спецификации кода js находится после jslint и jshint, вы, должно быть, слышали об eslint. Подобно правилам проверки js-кода в eslint, в stylelint тоже есть аналогичная система обработки.
update in 12/15
Просто вилка напрямуюvue-templates for webpack, Напрямую разветвите этот проект, создайте ветвь stylelint локально, измените meta.js,
повысилсяstylelint
Соответствующая конфигурация (используя последний шаблон веб-пакета vue-cli, конкретный адрес версии1.2.7
)
Так что теперь просто нужно содержимое ниже локального типа
/* vue init username/repo your-projectName*/
vue init EliazTray/webpack#stylelint webpack-stylelint
Появляется следующее содержимое, все можно проверить
Затем после установки зависимостей
// 就可以对所有的.vue文件进行处理了(支持.vue里面的lang)
npm run lintcss:vue
В это время должна быть ошибка, показывающаяExpected empty line before rule rule-empty-line-before
// 类似eslint中添加--fix
npm run lintcss:vue -- --fix
Вы можете обнаружить, что эти ошибки автоматически исправляются (ниже также упоминается, что некоторые ошибки не поддерживают автоматическое исправление)
Если вы хотите попробовать эффект, вы можете использовать шестнадцатеричное представление цвета в верхнем регистре в любом месте файла .vue.Используя --fix, вы можете обнаружить, что верхний регистр автоматически фиксируется в нижнем регистре (из-за наследованияstandard
правила в)
Надпись совсем небольшая, если есть вопросы, можно общаться :)
TL;DR
1. Используйтеvue-cli
Инициализировать проект
2.npm i stylelint stylelint-config-standard -D
3. Создайте в корневом каталоге проектаstylelint.config.js
файл, скопируйте в него следующее содержимое.
module.exports = {
"extends": "stylelint-config-standard",
"rules": {
}
}
4. Откройте package.json и вставьте в скрипты
"scripts": {
// 表示对所有的.vue文件使用自定义的syntax去parse,自定义的syntax module就是postcss-html,并且使用--fix自动修复选项,去修复一些可以修复的规则。
"lintcss:fix": "stylelint **/*.vue --custom-syntax postcss-html --fix"
}
5. Выполнение консолиnpm run lintcss:fix
Установить
Рекомендуется устанавливать локально и переустанавливать каждый проект заново.
npm i stylelint -D
Потому что он не установлен глобально (-g
установка), так что в общем, вам нужно использовать помощьnpm scripts
, Если вы еще не играли в нее раньше, сначала проверьте соответствующую информацию.
// in package.json
···
···
{
"scripts": {
"lintcss": "stylelint **/*.css -s scss"
}
}
···
Во-первых, давайте поговорим о большой предпосылке, которая очень важна.
- stylelint автоматически игнорируется
node_modules
а такжеbower_modules
проверка линтера ниже. - stylelint автоматически использует соответствующий синтаксис для анализа файлов с такими суффиксами, как css, .scss, .sass и т. д. Например, css использует css, а scss использует scss. Вы сказали выше, используйте
-s
или--syntax
возможность переопределить загруженныйsyntax
. - stylelint не может использовать папку как стандартный ввод (не src/, ее нужно указать как src/*.scss), а также не указывает суффикс (функция --ext в eslint). как используется в eslint
eslint -ext .js,.vue
Вы можете линтеровать файлы указанного типа
правило
Как правило, файл конфигурации для stylelint необходимо создать в корневом каталоге проекта.
- a
stylelint
property in package.json - a
.stylelintrc
file - a
stylelint.config.js
file exporting a JS object
По сравнению с eslint, eslint имеет .eslintrc.js
Бебель использует.babelrc
Итак, stylelint я привык создаватьstylelint.config.js
Файлы в module.exports путь, вывод некоторых правил конфигурации.
Взгляните на конфигурацию в моем проекте. последующийstylelint-config-standard
,stylelint-order
Требует установки.
module.exports = {
"extends": "stylelint-config-standard",
"plugins": [
"stylelint-order"
],
"rules": {
"order/order": [
"declarations",
"custom-properties",
"dollar-variables",
"rules",
"at-rules"
],
····
····
}
}
в общемextends
Наследовать правило, обычно используется isstylelint-config-standard
Эта библиотека, эта библиотека официально рекомендована, а также используется многими крупными компаниями, такими как facebook и google, использующими этот набор правил css.
Здесь я использовал этакие плагины, и так скажу. Это действует для позиции написания свойства css.
Использование StyleLint в редакторе
То, что я только что написал, является базовой конфигурацией и введением, которое должно гарантировать, что вы можете написать это, исходя из понимания того, что такое stylelint.
Если вы хотите использовать stylelint в редакторе, напримерvscode
, это очень просто,
1. Найдите stylelint в репозитории плагинов 2. В соответствии с подсказками плагина измените некоторые пользовательские настройки. Но я проверил, в моей текущей версии эти конфигурации могут действовать без необходимости. 3. Если вы хотите использовать stylelint в специальном языковом блоке, например, в файле vue, добавьте следующие настройки.
// 用户设置文件中. 文件->首选项->用户设置
// 让stylelint在vue组件中支持.
"stylelint.additionalDocumentSelectors": [
"vue"
]
stylelint будет основан на корневом каталогеstylelint.config.js
В настройках правила перейдите к линтеру всех файлов .vue и предложите связанные с ними синтаксические ошибки.
Таким образом, он уже имеет функцию автоматического сообщения об ошибках при кодировании.
Автоматическая коррекция
Представьте, что в eslint есть --fix, а в stylelint тоже есть --fix, но --fix в stylelint может решить только некоторые проблемы, например, перед фигурными скобками должны быть пробелы, они не исправят автоматически за вас. , Ручное исправление (официальная документация тоже очень понятна)
Потом это все --fix в .css или .scss, или .sss и другие файлы, но если специальный файл еще и stylelint нужен для линтера, что нужно делать, официальная документация тоже очень понятна, используйте препроцессор , сначала используйте препроцессор для анализа соответствующего файла с параметром --custom-syntax.
настоятельно рекомендуется к прочтению
Разбирать нестандартные грамматики
После прочтения соответствующих вопросов, вероятно, следующая версия (начиная с сегодняшнего дня) (новый шаблон веб-пакета под vue-cli) должна интегрировать соответствующие настройки stylelint.
Таким образом, обработка файла vue
// package.json
{
"scripts": {
// 表示对所有的.vue文件使用自定义的syntax去parse,自定义的syntax module就是postcss-html,并且使用--fix自动修复选项,去修复一些可以修复的规则。
"lintcss:fix": "stylelint **/*.vue --custom-syntax postcss-html --fix"
}
}
этоpostcss-html
Модуль был встроен в stylelint несколько дней назад, то есть встроен, поэтому при установке stylelint не нужно устанавливать postcss-html.Функция этого postcss-html заключается в разборе нестандартного синтаксиса, такие как уценка и vue.
Используйте соответствующие плагины
в наследствоstylelint-config-standard
После этого уже есть некоторые правила CSS, но если мне потребуется порядок лирики CSS, на этот раз вам нужно включить обнаружение порядка атрибутов CSS (порядок свойств определяется самим собой), в основном используя имяstylelint-order
Конкретная конфигурация выглядит следующим образом.
Первыйnpm i stylelint-order -D
(Уже установленоstylelint
,stylelint-config-standard
помещение)
// 我项目工程的配置,order是使用style-order的推荐属性顺序。
module.exports = {
"extends": "stylelint-config-standard",
"plugins": [
"stylelint-order"
],
"rules": {
"order/order": [
"declarations",
"custom-properties",
"dollar-variables",
"rules",
"at-rules"
],
"order/properties-order": [
"position",
"top",
"right",
"bottom",
"left",
"float",
...
...
]
}
}
Таким образом, правила атрибутов, написанные моими css и scss, устанавливаются по моим правилам.Если в заказе есть ошибка, он поможет подсказать их, а затем при использовании --fix автоматически исправит правила порядка. Я установил.
Наверное, это так, очень полезный линтер, а также отдельные читатели могут изучить его самостоятельно в postcss или webpack~