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.pswp.cn/bicheng/79162.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/79162.shtml
英文地址,請注明出處:http://en.pswp.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,那…