Eslint prettier airbnb規范 配置

1.安裝vscode的Eslint和prettier 插件

eslint:代碼質量檢查工具

https://eslint.nodejs.cn/docs/latest/use/getting-started

prettier:代碼風格格式化工具

https://www.prettier.cn/docs/index.html

/*
eslint-config-airbnb-base airbnb 規范
eslint-import-resolver-typescript 解決@別名識別問題 
eslint-plugin-import 如果是npm yarn需要安裝
*/
pnpm i eslint-config-airbnb-base eslint-plugin-import eslint-import-resolver-typescript  -D

eslint-config-airbnb-base airbnb :airbnb代碼質量規范

https://github.com/airbnb/javascript#events

eslint-import-resolver-typescript : 解決@別名識別問題

https://www.npmjs.com/package/eslint-import-resolver-typescript


2.根目錄下新建eslint規則配置文件

.eslintrc.js 修改規則

/* eslint-env node */
require('@rushstack/eslint-patch/modern-module-resolution')module.exports = {root: true,extends: ['plugin:vue/vue3-essential','eslint:recommended','airbnb-base','@vue/eslint-config-typescript','@vue/eslint-config-prettier/skip-formatting'//  './.eslintrc-auto-import.json' 后面自動導入會用到],parserOptions: {ecmaVersion: 'latest'},overrides: [{files: ['*.ts', '*.tsx', '*.vue'],rules: {// 解決 ts 全局類型定義后,eslint報錯的問題'no-undef': 'off'}}],settings: {'import/resolver': {typescript: {project: './tsconfig.*.json'}}},rules: {'import/no-extraneous-dependencies': 'off',// 對后綴的檢測'import/extensions': ['error','ignorePackages',{ js: 'never', jsx: 'never', ts: 'never', tsx: 'never' }],'import/order': ['error',{groups: [/* builtin :內置模塊,如 path,fs等 Node.js內置模塊。external :外部模塊,如 lodash ,react 等第三方庫。internal :內部模塊,如相對路徑的模塊、包名前綴為 @ 的模塊。unknown :未知模塊,如模塊名沒有指定擴展名或模塊路徑缺失擴展名。parent :父級目錄的模塊。sibling :同級目錄的模塊。index :當前目錄的 index 文件。object :使用ES6 導入的模塊。type :使用 import type 導入的模塊。*/['builtin', 'external'],'internal',['parent', 'sibling'],'index','type','object','unknown'],pathGroups: [{pattern: '../**',group: 'parent',position: 'after'},{pattern: './*.scss',group: 'sibling',position: 'after'}],// 不同組之間是否換行。'newlines-between': 'always',// 根據字母順序對每組內的引用進行排序。alphabetize: {order: 'asc',caseInsensitive: true}}],}
}
  • 根目錄新建忽略文件 .eslintignore
dist
node_modules
public
.husky
.vscode
.idea
*.sh
*.md.eslintrc.cjs
.prettierrc.json
.stylelintrc.cjs

3.根目錄下新建prettier配置文件

{"$schema": "https://json.schemastore.org/prettierrc","semi": false,"tabWidth": 2,"singleQuote": true,"printWidth": 100,"trailingComma": "none"
}

段代碼是Prettier代碼格式化工具的配置文件的內容,通常存儲為.prettierrc或prettier.config.js。Prettier是一個流行的代碼格式化工具,用于確保代碼的一致性和風格。下面是各個配置項的解釋:

"$schema": 指向Prettier配置文件的JSON Schema定義。這個URL是Schema存儲位置,它定義了哪些屬性是有效的,以及各屬性的數據類型等。這有助于支持JSON Schema的編輯器提供自動完成、類型校驗等功能。

"semi": 設置為false表示在每條語句的末尾不自動添加分號。Prettier會根據這個配置來格式化代碼,如果你更傾向于省略分號,這會是一個有用的配置。

"tabWidth": 設置代碼的縮進寬度為2個空格。這個配置影響代碼的可讀性和布局,2是一個比較常見的選擇,因為它既保持了代碼的緊湊,也足夠清晰。

"singleQuote": 設置為true表示使用單引號(')而不是雙引號(")來包圍字符串。這是代碼風格的一個選擇,不同的團隊或項目可能有不同的偏好。

"printWidth": 設置一行代碼的最大長度為100個字符。當代碼長度超過這個閾值時,Prettier會嘗試換行。這個配置有助于保持代碼的可讀性,尤其是在小屏幕或分屏編輯時。

"trailingComma": 設置為"none"表示在對象或數組最后一個元素后面不加逗號。這個配置項也是基于風格偏好的,一些人喜歡在最后一個元素后加上逗號(稱為尾后逗號),因為這樣在添加新元素時可以減少版本控制中的差異(只增加一行,而不是修改一行加一行)。

3.1兩個prettier的配置例子,可根據個人需求更改

module.exports = {printWidth: 100, //單行長度tabWidth: 2, //縮進長度useTabs: false, //使用空格代替tab縮進semi: true, //句末使用分號singleQuote: true, //使用單引號quoteProps: 'as-needed', //僅在必需時為對象的key添加引號jsxSingleQuote: true, // jsx中使用單引號trailingComma: 'all', //多行時盡可能打印尾隨逗號bracketSpacing: true, //在對象前后添加空格-eg: { foo: bar }jsxBracketSameLine: true, //多屬性html標簽的‘>’折行放置arrowParens: 'always', //單參數箭頭函數參數周圍使用圓括號-eg: (x) => xrequirePragma: false, //無需頂部注釋即可格式化insertPragma: false, //在已被preitter格式化的文件頂部加上標注proseWrap: 'preserve', //不知道怎么翻譯htmlWhitespaceSensitivity: 'ignore', //對HTML全局空白不敏感vueIndentScriptAndStyle: false, //不對vue中的script及style標簽縮進endOfLine: 'lf', //結束行形式embeddedLanguageFormatting: 'auto', //對引用代碼進行格式化
};
module.exports = {printWidth: 200, //行寬semi: true, //分號singleQuote: true, // 使用單引號useTabs: false, //使用 tab 縮進tabWidth: 2, //縮進trailingComma: 'es5', //后置逗號,多行對象、數組在最后一行增加逗號arrowParens: 'avoid', //箭頭函數只有一個參數的時候可以忽略括號bracketSpacing: true, //括號內部不要出現空格proseWrap: 'preserve', //換行方式 默認值。因為使用了一些折行敏感型的渲染器(如GitHub comment)而按照markdown文本樣式進行折行parser: 'babylon', //格式化的解析器,默認是babylonendOfLine: 'auto', // 結尾是 \n \r \n\r autojsxSingleQuote: false, // 在jsx中使用單引號代替雙引號jsxBracketSameLine: false, //在jsx中把'>' 是否單獨放一行stylelintIntegration: false, //不讓prettier使用stylelint的代碼格式進行校驗eslintIntegration: false, //不讓prettier使用eslint的代碼格式進行校驗tslintIntegration: false, // 不讓prettier使用tslint的代碼格式進行校驗disableLanguages: ['vue'], // 不格式化vue文件,vue文件的格式化單獨設置htmlWhitespaceSensitivity: 'ignore',ignorePath: '.prettierignore', // 不使用prettier格式化的文件填寫在項目的.prettierignore文件中requireConfig: false, // Require a 'prettierconfig' to format prettier
}


4.保存自動格式化當前文件

  • 根目錄下新建 .vscode/settings.json

// settings.json{"typescript.tsdk": "node_modules/typescript/lib","editor.defaultFormatter": "esbenp.prettier-vscode","editor.formatOnSave": true,"editor.codeActionsOnSave": {"source.fixAll.eslint": "explicit","source.fixAll.stylelint": "explicit"},"stylelint.validate": ["css", "scss", "less", "vue"],"[vue]": {"editor.defaultFormatter": "esbenp.prettier-vscode"},"[ts]": {"editor.defaultFormatter": "esbenp.prettier-vscode"},"[javascript]": {"editor.defaultFormatter": "esbenp.prettier-vscode"},"[scss]": {"editor.defaultFormatter": "esbenp.prettier-vscode"}
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/39844.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/39844.shtml
英文地址,請注明出處:http://en.pswp.cn/web/39844.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

高德地圖軌跡回放并提示具體信息

先上效果圖 到達某地點后顯示提示語&#xff1a;比如&#xff1a;12&#xff1a;56分駛入康莊大道、左轉駛入xx大道等 <!doctype html> <html> <head><meta charset"utf-8"><meta http-equiv"X-UA-Compatible" content"…

【前端CSS3】CSS顯示模式(黑馬程序員)

文章目錄 一、前言&#x1f680;&#x1f680;&#x1f680;二、CSS元素顯示模式&#xff1a;??????2.1 什么是元素顯示模式2.2 塊元素2.3 行內元素2.4 行塊元素2.5 元素顯示模式的轉換 三、總結&#x1f680;&#x1f680;&#x1f680; 一、前言&#x1f680;&#x1f…

巴圖自動化Modbus協議轉Profinet協議網關模塊連智能儀表與PLC通訊

一、現場要求:PLC作為控制器&#xff0c;儀表設備作為執行設備。執行設備可以實時響應PLC傳送的指令&#xff0c;并將數據反饋給PLC&#xff0c;從而實現PLC對儀表設備的控制和監控&#xff0c;實現對生產過程的精確控制。 二、解決方案:通過巴圖自動化Modbus協議轉Profinet協議…

前端面試題4(瀏覽器對http請求處理過程)

瀏覽器對http請求處理過程 當我們在瀏覽器中輸入URL并按下回車鍵時&#xff0c;瀏覽器會執行一系列步驟來處理HTTP請求并與服務器通信。下面是瀏覽器處理過程 1. 解析URL 瀏覽器首先解析輸入的URL&#xff0c;提取出協議&#xff08;通常是http://或https://&#xff09;、主…

Robust Test-Time Adaptation in Dynamic Scenarios--論文閱讀

論文筆記 資料 1.代碼地址 https://github.com/BIT-DA/RoTTA 2.論文地址 https://arxiv.org/abs/2303.13899 3.數據集地址 coming soon 1論文摘要的翻譯 測試時間自適應(TTA)旨在使預先7訓練的模型適用于僅具有未標記測試數據流的測試分布。大多數以前的TTA方法已經在…

為什么要卸載手機上面的抖音?

刪除抖音等社交媒體應用可能出于多種原因&#xff0c;這里列舉一些常見的考慮因素&#xff1a; 1. **時間管理**&#xff1a; 抖音和其他社交媒體平臺可能會占用大量時間&#xff0c;影響個人的日常生活和工作學習效率。 這個對于自己而言是一個客觀存在的事情&#xff1a; 2.…

安卓請求服務器[根據服務器的內容來更新spinner]

根據服務器的內容來更新spinner 本文內容請結合如下兩篇文章一起看: 騰訊云函數node.js返回自動帶反斜杠 騰訊云函數部署環境[使用函數URL] 現在有這樣一個需求,APP有一個下拉選擇框作為版本選擇,因為改個管腳就變成一個版本,客戶需求也很零散,所以后期會大量增加版本,這時候每…

數據預處理:統計關聯性分析/數據清洗/數據增強/特征工程實例

專欄介紹 1.專欄面向零基礎或基礎較差的機器學習入門的讀者朋友,旨在利用實際代碼案例和通俗化文字說明,使讀者朋友快速上手機器學習及其相關知識體系。 2.專欄內容上包括數據采集、數據讀寫、數據預處理、分類\回歸\聚類算法、可視化等技術。 3.需要強調的是,專欄僅介紹主…

gitLab使用流程

標題1.配置賬戶 git config --global user.name git config --global user.email mygitlabmali.cn 標題2.生成秘匙 ssh-keygen -t rsa -C “mygitlabmail.cn” 。 //輸入命令后一直回車 &#xff0c;輸入命令后一直回車&#xff08;密碼可以不填&#xff09;&#xff0c;至…

Java面試題系列 - 第2天

題目&#xff1a;Java中的線程池模型及其配置策略 背景說明&#xff1a;在Java多線程編程中&#xff0c;線程池是一種高效的線程復用機制&#xff0c;能夠有效管理和控制線程的創建與銷毀&#xff0c;避免頻繁創建和銷毀線程帶來的性能開銷。理解和掌握線程池的配置策略對于優…

Anaconda+Pycharm兩個軟件從頭到尾下載流程

前言&#xff1a; 1、使用教程前&#xff0c;請將電腦上的所有的Python卸載掉。再下載Anaconda&#xff0c;Anaconda這個軟件里面就含有python。 徹底刪除python方法&#xff1a; 1、計算機——屬性——高級系統設置——環境變量 2、查看電腦用戶自己設計的環境變量&#x…

【智能制造-8】輸送線運動控制算法

輸送線運動控制算法包含哪些內容&#xff1f; 輸送線運動控制算法包含以下幾個主要內容: 速度控制算法: 根據目標速度和當前實際速度,調整電機的輸出功率,達到所需的輸送線速度。 常見的算法包括PID控制、自適應控制等。位置/距離控制算法: 監控輸送線上物料的位置或移動距離…

Xilinx FPGA:vivado關于RAM的一些零碎的小知識

一、xilinx fpga嵌入式存儲單元 RAM----隨機存取存儲器&#xff1a;上電工作時可以隨時從任何一個指定的地址寫入&#xff08;存入&#xff09;或讀出&#xff08;取出&#xff09;信息。缺點是一旦斷電所存儲的數據將隨之丟失。RAM在計算機和數字系統中用來暫時性存儲程序、數…

golang net.url 標準庫

golang net.url 標準庫 Go 語言標準庫中的 net/url 包提供了用于 URL 解析、構建和查詢的功能。這個包使我們能夠處理 URL&#xff0c;從中提取出各個部分&#xff0c;比如協議、主機、路徑和查詢參數等。以下是 net/url 包中一些常用的功能&#xff1a; 解析URL&#xff1a;使…

下載安裝MySQL

1.軟件的下載 打開官網下載mysql-installer-community-8.0.37.0.msi 2.軟件的安裝 mysql下載完成后&#xff0c;找到下載文件&#xff0c;雙擊安裝 3.配置環境變量 4.自帶客戶端登錄與退出

護網藍隊面試

一、sql注入分類 **原理&#xff1a;**沒有對用戶輸入項進行驗證和處理直接拼接到查詢語句中 查詢語句中插?惡意SQL代碼傳遞后臺sql服務器分析執行 **從注入參數類型分&#xff1a;**數字型注入、字符型注入 **從注入效果分&#xff1a;**報錯注入、布爾注入、延時注入、聯…

測試引擎模擬接口實戰

在上一章的內容中&#xff0c;我簡單介紹了整個微服務的各個子模塊&#xff0c;還封裝了一些工具類。 當然&#xff0c;若還沒完成上次內容的也可以點擊右側的傳送門------傳送門 EngineApplication 在開發測試引擎模擬接口之前&#xff0c;還需要給xxx-engine創建一個Sprin…

bpftrace幾種使用實例

1. 排查內存泄漏 memory.c memory.bt 可以執行相關memory&#xff0c;用bpftrace追蹤malloc和free的過程 修改memory.bt&#xff0c;加上malloc和free統計&#xff0c;重新執行 2. 驗證tcp連接關閉是應用關閉還是內核關閉 nginx服務啟動后&#xff0c;會處于監聽狀態&…

Linux python3.6安裝mayavi報錯

需要將vtk版本降級&#xff0c;以及uninstall pyqt5&#xff08;安裝的vtk版本是9.3.1&#xff09; pip3 install vtk8.1.0 或者9.0.1 報錯 Building wheels for collected packages: mayavi Building wheel for mayavi (setup.py) ... error ERROR: Command errored out…

速盾:cdn防止采集?

CDN&#xff08;Content Delivery Network&#xff09;是一種網絡加速技術&#xff0c;主要用于分發網站內容給用戶&#xff0c;并提供一定的安全保護。CDN的主要作用是通過將網站的靜態資源&#xff08;如圖片、CSS、JS等&#xff09;緩存到分布在全球各地的服務器上&#xff…