Команда vp lint
vp lint выполняет линтинг кода с помощью Oxlint.
Обзор
vp lint основан на Oxlint — линтере из экосистемы Oxc. Oxlint разработан как быстрая замена ESLint для большинства фронтенд-проектов и включает встроенную поддержку основных правил ESLint, а также множества популярных правил сообщества.
Используйте vp lint для линтинга проекта, а vp check — для одновременного форматирования, линтинга и проверки типов.
Использование
vp lint
vp lint --fix
vp lint --type-awareКонфигурация
Размещайте конфигурацию линтинга непосредственно в блоке lint корневого vite.config.ts, чтобы вся конфигурация оставалась в одном месте. Мы не рекомендуем использовать oxlint.config.ts или .oxlintrc.json с Vite+.
В настоящее время Vite+ не поддерживает вложенную конфигурацию линтинга. Пока используйте lint.overrides в корневом vite.config.ts для правил, специфичных для файлов или пакетов. Дальнейшее развитие этой функциональности ещё обсуждается; поделитесь своим сценарием использования и ожиданиями, чтобы помочь определить направление её развития.
Подробную информацию о наборе правил, параметрах настройки и совместимости см. в документации Oxlint.
import { defineConfig } from 'vite-plus';
export default defineConfig({
lint: {
ignorePatterns: ['dist/**'],
options: {
typeAware: true,
typeCheck: true,
},
},
});Линтинг с учётом типов
Мы рекомендуем включать одновременно typeAware и typeCheck в блоке lint:
typeAware: trueвключает правила, которым требуется информация о типах TypeScripttypeCheck: trueвключает полноценную проверку типов во время линтинга
Этот механизм работает на базе tsgolint, использующего инструментарий TypeScript 7 (также известный как TypeScript Go). Он предоставляет Oxlint доступ к информации о типах и позволяет выполнять проверку типов непосредственно с помощью vp lint и vp check.
JS-плагины
Если вы переходите с ESLint и всё ещё зависите от нескольких важных ESLint-плагинов на JavaScript, Oxlint предоставляет поддержку JS-плагинов, которая поможет сохранить их работоспособность на время завершения миграции.
JS-плагины также позволяют писать собственные правила для Oxlint.
Написание собственных правил
Импортируйте API для создания плагинов из vite-plus/lint/plugins:
import { definePlugin, defineRule } from 'vite-plus/lint/plugins';
const noFoo = defineRule({
meta: { messages: { noFoo: 'Do not name things "foo".' } },
create(context) {
return {
Identifier(node) {
if (node.name === 'foo') {
context.report({ node, messageId: 'noFoo' });
}
},
};
},
});
export default definePlugin({
meta: { name: 'my' },
rules: { 'no-foo': noFoo },
});Зарегистрируйте его в lint.jsPlugins и включите его правила:
import { defineConfig } from 'vite-plus';
export default defineConfig({
lint: {
jsPlugins: ['./lint/my-plugin.js'],
rules: {
'my/no-foo': 'error',
},
},
});Для тестирования правил RuleTester доступен из vite-plus/lint/plugins-dev.
Обе точки входа повторно экспортируют копию, поставляемую вместе с Vite+. Поэтому API всегда соответствует встроенному в Vite+ Oxlint.
Используйте их вместо добавления @oxlint/plugins или oxlint в качестве прямой зависимости. Отдельно закреплённая версия может рассинхронизироваться с линтером, который загружает ваш плагин. Кроме того, она не будет разрешаться из файла плагина при строгой структуре pnpm, если каждый пакет, содержащий плагин, не объявляет её в зависимостях.
vp migrate автоматически переписывает существующие импорты oxlint и @oxlint/plugins. См. Импорты JS-плагинов Oxlint.
Правило vite-plus/prefer-vite-plus-imports сообщает о любых импортах, которые появились снова.