宅男在线永久免费观看网直播,亚洲欧洲日产国码无码久久99,野花社区在线观看视频,亚洲人交乣女bbw,一本一本久久a久久精品综合不卡

全部
常見問題
產品動態(tài)
精選推薦

手把手教你使用ESLint + Prettier規(guī)范項目代碼

管理 管理 編輯 刪除


相信小伙伴們在小學時都經歷過小平頭時代,那時的教務處主任天天學校門口巡視,同學們更是一個個心驚膽戰(zhàn)。那時的我們就好比一行行代碼,如果發(fā)型不一,上來就是兩...55555不說了... 所以說統(tǒng)一樣式更有助于我們更統(tǒng)一的管理,也會使我們少犯錯誤,這時ESlint站出來了,它就是教務處主任的化身,會將我們的形形色色的發(fā)型(代碼)統(tǒng)一起來,雖然驗證過得代碼不一定完美,但是一定相對規(guī)范。

什么是 ESLint?

ESLint是一個用來識別 ECMAScript 并且按照規(guī)則給出報告的代碼檢測工具,使用它可以避免低級錯誤和統(tǒng)一代碼的風格。如果每次在代碼提交之前都進行一次eslint代碼檢查,就不會因為某個字段未定義為undefined或null這樣的錯誤而導致服務崩潰,可以有效的控制項目代碼的質量。

ESlint的主要作用

1.代碼質量問題:使用/編寫的方式有可能有問題 (problematic patterns)

2.代碼風格問題:風格不符合一定規(guī)則 (doesn’t adhere to certain style guidelines)

就好比有些同學喜歡使用tab縮進,有些喜歡空格,有些喜歡2個空格,有些喜歡4個。這就難辦了,到底聽誰的?

最后經過一番舌戰(zhàn),選定2個空格作為標準。于是乎我們在根目錄創(chuàng)建了配置文件.eslintrc并寫入了我們的倫果

// .eslintrc    
{        
  "indent": ["error", 2]    
}
  • 為了大家的提高大家的開發(fā)體檢及提交的一致性,你還‘威逼利誘’的讓大家下載了vscode插件,沒有通過 ESLint 校驗的代碼 VSCode 會給予下滑波浪線提示,提醒他好好檢查。
  • 為了保證提交代碼的萬無一失,你還添加一個 pre-commit 鉤子 eslint --ext .js src,確保沒有通過 lint 的代碼不會被提交。
  • 最后還要求了大家使用 eslint --fix 將之前的所有代碼,一鍵修改成了新規(guī)范下的代碼格式。

什么是 Prettier?

一個流行的代碼格式化工具的名稱,它能夠解析代碼,使用你自己設定的規(guī)則來重新打印出格式規(guī)范的代碼。

Tony老師認為發(fā)型很重要,Prettier也這么認為。 Prettier認為格式很重要,但是格式好麻煩,我來幫你們定好吧。簡單來說,不需要我們再思考究竟是用 single quote,還是 double quote 這些亂起八糟的格式問題,Prettier 幫你處理。最后的結果,可能不是你完全滿意,但是,絕對不會丑。

Prettier 接管了兩個問題其中的代碼格式的問題,而使用 Prettier + ESLint 就完完全全解決了兩個問題

當然,教務處主任和Tony老師對發(fā)型的理解‘不共戴天’,所以我們還需要對他們進行一番深入交流。下面就讓我們一起開始吧!

正文

依賴安裝

在你的項目中安裝以下依賴,這些依賴只需安裝在開發(fā)環(huán)境配置中

npm install eslint prettier --save-dev
npm install eslint-config-prettier eslint-plugin-prettier --save-dev

vscode插件安裝

安裝 vscode 插件 ESLint 和 Prettier - Code formatter

如果希望在每次保存時自動格式化代碼可以加上以下配置

  • 項目下創(chuàng)建 .vscode/settings.json 配置 (也可以配置到全局)
  • 配置每次報錯自動ESLint檢查規(guī)則并格式化
{
 "editor.codeActionsOnSave": {
   "source.fixAll.eslint": true
 }
}

添加配置文件

添加配置文件 .eslintrc.js
// .eslintrc
module.exports = {
  root: true, 
  plugins: ['prettier'],  // prettier 一定要是最后一個,才能確保覆蓋
  rules: {
    'prettier/prettier': 'error',
  },
  extends: ['plugin:prettier/recommended'],
};

上面配置在運行報錯時可選以下配置

// .eslintrc
module.exports = {
  plugins: ['prettier'],
  parser: "vue-eslint-parser",
  parserOptions: {
    sourceType: 'module',
    ecmaVersion: 2020,
    parser: 'babel-eslint',
  },
  rules: {
    'prettier/prettier': 'error',
    "parser": 0
  },
  extends: ['plugin:prettier/recommended'],
};

以下是我的個人配置,僅供參考

創(chuàng)建配置文件 .prettierrc.js
//.prettierrc.js
module.exports = {
  // 一行最多 120 字符
  printWidth: 120,
  // 使用 2 個空格縮進
  tabWidth: 2,
  // 不使用 tab 縮進,而使用空格
  useTabs: false,
  // 行尾需要有分號
  semi: true,
  // 使用單引號代替雙引號
  singleQuote: true,
  // 對象的 key 僅在必要時用引號
  quoteProps: 'as-needed',
  // jsx 不使用單引號,而使用雙引號
  jsxSingleQuote: false,
  // 末尾使用逗號
  trailingComma: 'all',
  // 大括號內的首尾需要空格 { foo: bar }
  bracketSpacing: true,
  // 箭頭函數(shù),只有一個參數(shù)的時候,也需要括號
  arrowParens: 'always',
  // 每個文件格式化的范圍是文件的全部內容
  rangeStart: 0,
  rangeEnd: Infinity,
  // 不需要寫文件開頭的 @prettier
  requirePragma: false,
  // 不需要自動在文件開頭插入 @prettier
  insertPragma: false,
  // 使用默認的折行標準
  proseWrap: 'preserve',
  // 根據顯示樣式決定 html 要不要折行
  htmlWhitespaceSensitivity: 'css',
  // 換行符使用 lf
  endOfLine: 'lf',
};

添加命令

  // package.json中scripts中加入
  "lint": "eslint --ext .js,.vue src",  // 檢查項目是否符合eslint規(guī)則
  "prettier": "prettier --write .",     // 一鍵格式化所有文件

忽略文件

當然,在特殊情況下,比如某個學生是校長的兒子,女兒之類的,教務處長總會睜一只眼,閉一只眼。所以我們也需要進行一些選擇性的忽視。

eslint忽略文件

.eslintignore

prettier忽略文件

.prettierignore

忽略規(guī)則與.gitignore一致

報錯及異常情況

  • Tip1: 執(zhí)行 npm run lint 報 'prettier/prettier': context.getPhysicalFilename is not a function

移除以下依賴,項目中不存在的就不用移除

npm rm @vue/cli-plugin-babel @vue/cli-plugin-eslint @vue/eslint-config-prettier eslint eslint-plugin-prettier eslint-plugin-vue prettier

安裝指定版本的依賴

npm i -D @vue/[email protected] @vue/[email protected] @vue/[email protected] [email protected] [email protected] [email protected] [email protected]
  • Tip2: 執(zhí)行 npm run lint 報 # Vue error: Parsing error: Unexpected token <

在.eslintrc.js中加入
parser: 'vue-eslint-parser'

  • Tip3 執(zhí)行  npm run dev 報 Cannot find module 'core-js/modules/es.array.concat.js'

babel.config.js文件中的presets添加userBuiltIns

module.exports = {
  presets: [['@vue/app',{ useBuiltIns: "entry" }]],
};


請登錄后查看

方程式 最后編輯于2023-10-31 17:49:26

快捷回復
回復
回復
回復({{post_count}}) {{!is_user ? '我的回復' :'全部回復'}}
排序 默認正序 回復倒序 點贊倒序

{{item.user_info.nickname ? item.user_info.nickname : item.user_name}} LV.{{ item.user_info.bbs_level || item.bbs_level }}

作者 管理員 企業(yè)

{{item.floor}}# 同步到gitee 已同步到gitee {{item.is_suggest == 1? '取消推薦': '推薦'}}
{{item.is_suggest == 1? '取消推薦': '推薦'}}
沙發(fā) 板凳 地板 {{item.floor}}#
{{item.user_info.title || '暫無簡介'}}
附件

{{itemf.name}}

{{item.created_at}}  {{item.ip_address}}
打賞
已打賞¥{{item.reward_price}}
{{item.like_count}}
{{item.showReply ? '取消回復' : '回復'}}
刪除
回復
回復

{{itemc.user_info.nickname}}

{{itemc.user_name}}

回復 {{itemc.comment_user_info.nickname}}

附件

{{itemf.name}}

{{itemc.created_at}}
打賞
已打賞¥{{itemc.reward_price}}
{{itemc.like_count}}
{{itemc.showReply ? '取消回復' : '回復'}}
刪除
回復
回復
查看更多
打賞
已打賞¥{{reward_price}}
1508
{{like_count}}
{{collect_count}}
添加回復 ({{post_count}})

相關推薦

快速安全登錄

使用微信掃碼登錄
{{item.label}} 加精
{{item.label}} {{item.label}} 板塊推薦 常見問題 產品動態(tài) 精選推薦 首頁頭條 首頁動態(tài) 首頁推薦
取 消 確 定
回復
回復
問題:
問題自動獲取的帖子內容,不準確時需要手動修改. [獲取答案]
答案:
提交
bug 需求 取 消 確 定
打賞金額
當前余額:¥{{rewardUserInfo.reward_price}}
{{item.price}}元
請輸入 0.1-{{reward_max_price}} 范圍內的數(shù)值
打賞成功
¥{{price}}
完成 確認打賞

微信登錄/注冊

切換手機號登錄

{{ bind_phone ? '綁定手機' : '手機登錄'}}

{{codeText}}
切換微信登錄/注冊
暫不綁定
CRMEB客服

CRMEB咨詢熱線 咨詢熱線

400-8888-794

微信掃碼咨詢

CRMEB開源商城下載 源碼下載 CRMEB幫助文檔 幫助文檔
返回頂部 返回頂部
CRMEB客服