当前位置: 首页 > news >正文

Vue3.5 + Vite6.x 项目的完整 Stylelint 配置方案,支持 .vue/.html 内联样式、Less/SCSS/CSS 等多种文件类

Vue3.5 + Vite6.x 项目的完整 Stylelint 配置方案,支持 .vue/.html 内联样式、Less/SCSS/CSS 等多种文件类型

一、完整依赖安装

npm install --save-dev 
  stylelint 
  stylelint-config-standard 
  postcss-html           # 解析 Vue/HTML 文件中的样式
  postcss-scss           # 解析 SCSS 语法
  postcss-less           # 解析 LESS 语法
  stylelint-config-recommended-vue   # Vue 文件支持
  stylelint-less          # LESS 专属规则
  stylelint-scss          # SCSS 专属规则
  stylelint-no-unresolved-module  # 路径解析

二、完整配置文件 .stylelintrc.json

{
  "extends": [
    "stylelint-config-standard",
    "stylelint-config-recommended-vue",
    "stylelint-less",
    "stylelint-scss"
  ],
  "plugins": ["stylelint-no-unresolved-module"],
  "overrides": [
    {
      "files": ["**/*.vue", "**/*.html"],
      "customSyntax": "postcss-html"
    },
    {
      "files": ["**/*.scss"],
      "customSyntax": "postcss-scss"
    },
    {
      "files": ["**/*.less"],
      "customSyntax": "postcss-less"
    }
  ],
  "rules": {
    // 通用规则
    "selector-pseudo-class-no-unknown": [
      true,
      { "ignorePseudoClasses": ["deep", "global", "slotted"] }
    ],
    "selector-pseudo-element-no-unknown": [
      true,
      { "ignorePseudoElements": ["v-deep", "v-global", "v-slotted"] }
    ],
    "at-rule-no-unknown": [
      true,
      { "ignoreAtRules": ["tailwind", "apply", "layer", "config", "mixin", "include"] }
    ],

    // LESS 专属规则
    "less/no-undef-variables": true,
    "less/color-no-invalid-hex": true,

    // SCSS 专属规则
    "scss/at-rule-no-unknown": [
      true,
      { "ignoreAtRules": ["tailwind", "apply", "layer", "config", "mixin", "include"] }
    ],

    // 路径解析规则
    "plugin/no-unresolved-module": {
      "alias": {
        "@": "./src"
      }
    }
  }
}

三、配套文件配置

  1. package.json 脚本
"scripts": {
  "stylelint": "stylelint src/**/*.{html,vue,css,scss,less}",
  "stylelint:fix": "stylelint --fix src/**/*.{html,vue,css,scss,less}"
}
  1. 忽略文件 .stylelintignore
# .stylelintignore
# 旧的不需打包的样式库
*.min.css
 
# 其他类型文件
*.js
*.jpg
*.png
*.eot
*.ttf
*.woff
*.json
 
# 测试和打包目录
/test/
/dist/
/node_modules/
/lib/

  1. Vite 集成配置 (vite.config.js)
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import stylelintPlugin from 'vite-plugin-stylelint'

export default defineConfig({
  plugins: [
    vue(),
    stylelintPlugin({
      fix: true,
      include: ['src/**/*.{vue,css,scss,less,html}'],
      exclude: ['node_modules']
    })
  ]
})

四、

1、SCSS @use 语法报错

{
  "rules": {
    "scss/at-rule-no-unknown": [
      true,
      { "ignoreAtRules": ["use", "forward"] }
    ]
  }
}

2、Vue3 :deep() 伪类警告

{
  "rules": {
    "selector-pseudo-class-no-unknown": [
      true,
      { "ignorePseudoClasses": ["deep", "slotted", "global"] }
    ]
  }
}

3、解析 .vue 文件中的

{
  "overrides": [
    {
      "files": ["**/*.vue"],
      "customSyntax": "postcss-html"  // 关键配置
    }
  ]
}

4、变量未识别(以 LESS 为例)

{
  "rules": {
    "less/no-undef-variables": true  // 检查未定义变量
  }
}

5、@import 路径报错

{
  "plugins": ["stylelint-no-unresolved-module"],
  "rules": {
    "plugin/no-unresolved-module": {
      "alias": {
        "@": "./src"  // 配置路径别名
      }
    }
  }
}

相关文章:

  • Linux上通过Docker部署Zabbix6.2监控平台
  • 2.3 Spark运行架构与流程
  • hive/doris查询表的创建和更新时间
  • 【“星睿O6”评测】三套OpenCV,OpenCL/KleidiCV/JPG硬件编码加速测试
  • Python 中使用单例模式
  • vim 编辑器 使用教程
  • 日语学习-日语知识点小记-构建基础-JLPT-N4阶段(1):承上启下,继续上路
  • 突破焊丝虚影干扰,端子焊点缺陷检测如何实现自动化?
  • 基于 SpringBoot 的校园论坛系统
  • 蓝牙连接hci 命令和事件的交互
  • OpenSceneGraph相机系统
  • 求x的c(n,m)次方
  • 智慧零售新引擎!数图将亮相CHINASHOP 2025,助力企业降本增效
  • MCP基础学习二:MCP服务搭建与配置
  • repo仓库文件清理
  • Uniapp使用onShow语法报before initialization
  • 使用 Ktor 构建现代 Android 应用的后端服务
  • 数字世界的免疫系统:恶意流量检测如何守护网络安全
  • Java—HTML:3D形变
  • systemd 与 SysVinit
  • 学生网站建设的总结与评价/app推广策略
  • 2019年新电商法做网站/杭州seo运营
  • 南京做网站工作室/广东疫情防控措施
  • 用织梦做网站费用/百度指数查询手机版
  • 网站建设公司有哪些重要职务/营销型网站建设价格
  • 怎么做微信网站/广州网站开发多少钱