当前位置: 首页 > 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阻止格式错误代码提交
http://www.xdnf.cn/news/237997.html

相关文章:

  • 标准解读:数据要素安全可信流通技术标准【附全文阅读】
  • 驾驭音质,尽享四通道力量——AXPA17851
  • 若依定时任务
  • 【go】简单问答八股,go的理解,接口,锁,channel
  • 处理vue3热加载后axios的请求重复访问的问题
  • 深入理解C++17中的std::string_view
  • LibAI Lab走进西浦:重塑“AI+建筑”教育
  • 做了数据中台,还需要做数据治理吗?
  • 2025.4.28 Vue.js 学习笔记
  • 饿了么推出骑手AI助手小饿,智能配送再升级
  • 【综述】相位解包裹算法对比分析
  • QML学习:使用QML实现抽屉式侧边栏菜单
  • 融合AI助力医疗提效,华奥系医务系统助力医院数字化升级!
  • 老王说暗网【第8期】攻防演练的盲区?ATO(Account Takeover)攻击风险
  • EchoMimic 阿里开源数字人项目的复现过程
  • datax导出hdfs数据到关系型数据库空值处理
  • Redis基础系列-集群模式
  • 基于站点观测的中国1km土壤湿度日尺度数据集(2000-2022)
  • 深入探索ChatClient:简化AI模型交互的强大工具
  • 关于现代哲学的哲学理论的探索
  • layui轮播图根据设备宽度图片等比例,高度自适应
  • 在柯希霍夫积分法偏移成像中,反假频处理
  • 【黑马JavaWeb+AI知识梳理】后端Web基础01 - Maven
  • ReSearch: Learning to Reason with Search for LLMs via Reinforcement Learning
  • 【补题】Codeforces Round 664 (Div. 1) A. Boboniu Chats with Du
  • 西门子PLC S7-1200 的组态软件控制
  • DeepSeek V2:引入MLA机制与指令对齐
  • ZLG嵌入式笔记 | 移动硬盘和虚拟机的那些事儿
  • 深度卷积模型:案例研究
  • 【iPaaS融合集成平台-混合云时代,iPaaS正在成为企业集成的“中央枢纽”】