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.mzph.cn/bicheng/79162.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Arthas 使用攻略

目录 背景 Arthas是什么? 安装 使用arthas-boot(推荐) 启动 常用命令 一键生成arthas命令的插件(强烈推荐) watch 一、命令语法结构 二、核心参数详解 三、实战场景 1. 基础观测 - 查看入参和返回值 2. 条件过滤 - 只关注特定参…

冥想类短视频批量剪辑自动混剪技术实践:从素材处理到智能合成全解析

一、引言:工业化内容生产的技术突围 在心理健康类内容爆发的当下,冥想类短视频凭借「低制作成本 高用户粘性」的特性成为热门赛道。本文结合实战经验,解析如何通过模块化素材处理、参数化合成引擎、自动化质量控制等技术手段,构…

【自定义控件实现最大高度和最大宽度实现】

背景 开发中偶尔遇到控件宽度或者高度在自适应的情况下,有个边界值,也就是最大值。 比如高度自适应的情况下最大高度300dp这种场景。 实现 关键节点代码: Overrideprotected void onMeasure(int widthMeasureSpec, int heightMeasureSpec)…

综合练习三

使用到的知识点:xml文件,初始化file数据,提取file文件数据 题目:水文检测系统 备注:可以把序号作为该条数据的唯一标识(即UUID),而不是第一条第二条数据这样的类型。代码是后者&…

Microsoft Entra ID 详解:现代身份与访问管理的核心

Microsoft Entra ID(原名为 Azure Active Directory,简称 Azure AD)是微软推出的云端身份和访问管理服务,专为现代混合环境设计,支持企业安全地管理用户身份、控制资源访问,并集成多种应用与服务。以下从核心功能到最佳实践全面解析 Entra ID。 1. Entra ID 的核心定位 …

从技术角度看Facebook的隐私保护机制

在数字化时代,隐私保护成为了公众关注的焦点。作为全球最大的社交网络平台之一,Facebook 在隐私保护方面采取了一系列技术措施。本文将从技术角度探讨 Facebook 的隐私保护机制,揭示它是如何在提供个性化服务的同时,确保用户隐私信…

基于策略模式实现灵活可扩展的短信服务架构

基于策略模式实现灵活可扩展的短信服务架构 引言 在企业级应用开发中,短信服务是不可或缺的基础功能之一。随着业务发展,我们可能需要接入多个短信服务提供商(如阿里云、腾讯云、第三方短信网关等),并能够在不修改核…

Vue 3 单文件组件中 VCA 语法糖及核心特性详解

在 Vue.js 的开发世界里,单文件组件(Single File Components,简称 SFC)是构建复杂应用的基石。它将 HTML、CSS 和 JavaScript 代码封装在一个.vue文件中,极大地提高了代码的可维护性和复用性。 本文将深入探讨单文件组…

【Unity C#从零到精通】项目深化:构建核心游戏循环、UI与动态敌人系统

Langchain系列文章目录 01-玩转LangChain:从模型调用到Prompt模板与输出解析的完整指南 02-玩转 LangChain Memory 模块:四种记忆类型详解及应用场景全覆盖 03-全面掌握 LangChain:从核心链条构建到动态任务分配的实战指南 04-玩转 LangChai…

SNR8016语音模块详解(STM32)

目录 一、介绍 二、传感器原理 1.原理图 2.引脚描述 三、程序设计 main文件 usart.h文件 usart.c文件 四、实验效果 五、资料获取 项目分享 一、介绍 SNR8016语音模块是智纳捷科技生产的一种离线语音识别模块,设计适合用于DIY领域,开放用户设…

「动态规划」线性DP:最长上升子序列(LIS)|编辑距离 / LeetCode 300|72(C++)

概述 DP,即动态规划是解决最优化问题的一类算法,我们要通过将原始问题分解成规模更小的、相似的子问题,通过求解这些易求解的子问题来计算原始问题。 线性DP是一类基本DP,我们来通过它感受DP算法的奥义。 最长上升子序列&#x…

【NumPy完全指南】从基础操作到高性能计算实战

📑 目录 一、NumPy核心价值1.1 科学计算现状分析1.2 ndarray设计哲学 二、核心数据结构解析2.1 ndarray内存布局2.2 数据类型体系 三、矢量化编程实践3.1 通用函数(ufunc)示例3.2 广播机制图解 四、高性能计算进阶4.1 内存预分配策略4.2 Cython混合编程 五、典型应用…

你的项目有‘哇‘点吗?

你的项目有哇点吗? 刷了一下午招聘软件,发现没?大厂JD里总爱写有创新力者优先——可你们的简历,创新力还不如食堂菜单! 程序员写项目最大的误区:把创新当彩蛋藏最后!什么参与需求评审负责模块…

2025年危化品安全员考试题库及答案

一、单选题 126.安全生产监督管理部门和负有安全生产监督管理职责的有关部门逐级上报事故情况,每级上报的时间不得超过()小时。 A.2 B.6 C.12 答案:A 127.按照《安全生产法》规定,危险化学品生产经营单位的从业人员不服从管理,违反安全生…

第十六届蓝桥杯 C/C++ B组 题解

做之前的真题就可以发现,蓝桥杯特别喜欢出找规律的题,但是我还是低估了官方的执念。本博客用于记录第一次蓝桥的过程,代码写的很烂,洛谷已经有的题解,这里不再赘述,只说自己遇到的问题。用于以后回顾和查找…

C++ 基于多设计模式下的同步异步⽇志系统-2项目实现

⽇志系统框架设计 1.⽇志等级模块:对输出⽇志的等级进⾏划分,以便于控制⽇志的输出,并提供等级枚举转字符串功能。 ◦ OFF:关闭 ◦ DEBUG:调试,调试时的关键信息输出。 ◦ INFO:提⽰,普通的提⽰…

提示词工程(GOT)把思维链推理过程图结构化

Graph of Thoughts(GOT)? 思维图(Graph of Thoughts)是一种结构化的表示方法,用于描述和组织模型的推理过程。它将信息和思维过程以图的形式表达,其中节点代表想法或信息,边代表它们…

登录github失败---解决方案

登录github失败—解决方案 1.使用 Microsoft Edge 浏览器 2.https://www.itdog.cn/dns/ 查询 github.global.ssl.fastly.net github.com 两个 域名的 IP 3.修改DNS 为 8.8.8.8 8.8.4.4 4.修改windows hosts 文件 5. 使用 Microsoft Edge 浏览器 打开github.com

Spring AOP概念及其实现

一、什么是AOP 全称Aspect Oriented Programming,即面向切面编程,AOP是Spring框架的第二大核心,第一大为IOC。什么是面向切面编程?切面就是指某一类特定的问题,所以AOP也可以称为面向特定方法编程。例如对异常的统一处…

强化学习_Paper_2017_Curiosity-driven Exploration by Self-supervised Prediction

paper Link: ICM: Curiosity-driven Exploration by Self-supervised Prediction GITHUB Link: 官方: noreward-rl 1- 主要贡献 对好奇心进行定义与建模 好奇心定义:next state的prediction error作为该state novelty 如果智能体真的“懂”一个state,那…