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

Vue3源码学习-提交限制

文章目录

  • 前言
    • ✅ 1. ESLint 限制
      • 🔧 配置位置:
      • ✅ 启用了哪些规则(核心):
      • 📦 使用的插件和标准:
    • ✅ 2. TSC 编译限制
      • 关键选项:
    • ✅ 3. Git Hook 校验工具链
      • 配置例子(`package.json`):
    • ✅ 总结


前言

Vue 3 官方项目对 eslinttsc 的严格限制,主要是通过 集中统一的配置文件 + Git Hook 工具链(如 lint-staged、simple-git-hooks、husky) 实现的,具体如下:


✅ 1. ESLint 限制

🔧 配置位置:

.eslintrc.cjs

✅ 启用了哪些规则(核心):

rules: {'no-console': ['error', { allow: ['warn', 'error', 'info'] }],'no-debugger': 'error',...
}

解释:

  • 禁止所有 console.*,仅保留 warn, error, info
  • 提交前如果不符合规则,Git 会拒绝提交(通过 pre-commit hook)

📦 使用的插件和标准:

eslint
eslint-plugin-vue
@vue/eslint-config-prettier
@vue/eslint-config-typescript

✅ 2. TSC 编译限制

Vue 项目结构严格使用了:

tsconfig.json
tsconfig.base.json
tsconfig.config.json

关键选项:

{"compilerOptions": {"strict": true,"declaration": true,"isolatedModules": true,"noImplicitAny": true,"noUnusedLocals": true,"noEmitOnError": true}
}
  • isolatedModules: true:必须为所有 export function 添加返回类型(你遇到的)
  • noEmitOnError: true:类型报错时拒绝生成 .d.ts 文件
  • declaration: true:生成 .d.ts,用于包发布和 IDE 智能提示

✅ 3. Git Hook 校验工具链

官方用的通常是:

simple-git-hooks
lint-staged

配置例子(package.json):

"simple-git-hooks": {"pre-commit": "lint-staged"
},
"lint-staged": {"*.{ts,js,json}": ["eslint --fix","prettier --write"]
}

🔁 你执行 git commit 时,它自动执行:

  1. eslint --fix
  2. prettier --write
  3. 拒绝不符合标准的代码提交(你看到的就是这个)

✅ 总结

限制机制实现方式示例
ESLint.eslintrc.cjs 中的规则设置no-console, no-debugger
TypeScripttsconfig.json 严格模式isolatedModules, noEmitOnError
Git 钩子simple-git-hooks + lint-staged阻止格式错误代码提交

相关文章:

  • pytorch中的原地与非原地操作
  • 软件系统验收报告:功能、性能稳定性如何?数据导出卡顿咋回事?
  • GPU集群中的超节点
  • 【Hot 100】 148. 排序链表
  • AI Engine Kernel and GraphProgramming--知识分享1
  • 从有线到无线:冶炼工厂的高效转型
  • 视觉问答论文解析:《Skywork R1V2: Multimodal Hybrid Reinforcement Learning for Reasoning》
  • 数电发票整理:免费实用工具如何高效解析 XML 发票数据
  • 数据采集,埋点模型
  • 论文公式根据章节自动编号教程
  • 阿里云服务迁移实战: 06-切换DNS
  • 10.idea中创建springboot项目_jdk17
  • 大连理工大学选修课——机器学习笔记(1):概述
  • 【Agent】MCP协议 | 用高德MCP Server制作旅游攻略
  • Java 表达式及运算符的优先级与结合性入门
  • Windows 10 环境二进制方式安装 MySQL 8.0.41
  • 异步协程中基于 aiomysql 的异步数据库操作
  • 第五部分:进阶项目实战
  • 2025平航杯—团队赛
  • c#确定按钮5秒自动确定
  • 解放日报:硬科企业由此迈出“市场第一步”
  • 神十九都带回了哪些实验样品?果蝇等生命类样品已交付科学家
  • 内蒙古公开宣判144件毁林毁草刑案,单起非法占用林地逾250亩
  • 强制性国家标准《危险化学品企业安全生产标准化通用规范》发布
  • 铁路迎来节前出行高峰,今日全国铁路预计发送旅客1870万人次
  • 智能终端出海服务创新联合体成立