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

全部
常見(jiàn)問(wèn)題
產(chǎn)品動(dòng)態(tài)
精選推薦

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

管理 管理 編輯 刪除


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

什么是 ESLint?

ESLint是一個(gè)用來(lái)識(shí)別 ECMAScript 并且按照規(guī)則給出報(bào)告的代碼檢測(cè)工具,使用它可以避免低級(jí)錯(cuò)誤和統(tǒng)一代碼的風(fēng)格。如果每次在代碼提交之前都進(jìn)行一次eslint代碼檢查,就不會(huì)因?yàn)槟硞€(gè)字段未定義為undefined或null這樣的錯(cuò)誤而導(dǎo)致服務(wù)崩潰,可以有效的控制項(xiàng)目代碼的質(zhì)量。

ESlint的主要作用

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

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

就好比有些同學(xué)喜歡使用tab縮進(jìn),有些喜歡空格,有些喜歡2個(gè)空格,有些喜歡4個(gè)。這就難辦了,到底聽(tīng)誰(shuí)的?

最后經(jīng)過(guò)一番舌戰(zhàn),選定2個(gè)空格作為標(biāo)準(zhǔn)。于是乎我們?cè)诟夸泟?chuàng)建了配置文件.eslintrc并寫入了我們的倫果

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

什么是 Prettier?

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

Tony老師認(rèn)為發(fā)型很重要,Prettier也這么認(rèn)為。 Prettier認(rèn)為格式很重要,但是格式好麻煩,我來(lái)幫你們定好吧。簡(jiǎn)單來(lái)說(shuō),不需要我們?cè)偎伎季烤故怯?single quote,還是 double quote 這些亂起八糟的格式問(wèn)題,Prettier 幫你處理。最后的結(jié)果,可能不是你完全滿意,但是,絕對(duì)不會(huì)丑。

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

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

正文

依賴安裝

在你的項(xiàng)目中安裝以下依賴,這些依賴只需安裝在開(kāi)發(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

如果希望在每次保存時(shí)自動(dòng)格式化代碼可以加上以下配置

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

添加配置文件

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

上面配置在運(yùn)行報(bào)錯(cuò)時(shí)可選以下配置

// .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'],
};

以下是我的個(gè)人配置,僅供參考

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

添加命令

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

忽略文件

當(dāng)然,在特殊情況下,比如某個(gè)學(xué)生是校長(zhǎng)的兒子,女兒之類的,教務(wù)處長(zhǎng)總會(huì)睜一只眼,閉一只眼。所以我們也需要進(jìn)行一些選擇性的忽視。

eslint忽略文件

.eslintignore

prettier忽略文件

.prettierignore

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

報(bào)錯(cuò)及異常情況

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

移除以下依賴,項(xiàng)目中不存在的就不用移除

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 報(bào) # Vue error: Parsing error: Unexpected token <

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

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

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

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


請(qǐng)登錄后查看

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

快捷回復(fù)
回復(fù)
回復(fù)
回復(fù)({{post_count}}) {{!is_user ? '我的回復(fù)' :'全部回復(fù)'}}
排序 默認(rèn)正序 回復(fù)倒序 點(diǎn)贊倒序

{{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 || '暫無(wú)簡(jiǎn)介'}}
附件

{{itemf.name}}

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

{{itemc.user_info.nickname}}

{{itemc.user_name}}

回復(fù) {{itemc.comment_user_info.nickname}}

附件

{{itemf.name}}

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

相關(guān)推薦

快速安全登錄

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

微信登錄/注冊(cè)

切換手機(jī)號(hào)登錄

{{ bind_phone ? '綁定手機(jī)' : '手機(jī)登錄'}}

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

CRMEB咨詢熱線 咨詢熱線

400-8888-794

微信掃碼咨詢

CRMEB開(kāi)源商城下載 源碼下載 CRMEB幫助文檔 幫助文檔
返回頂部 返回頂部
CRMEB客服