校驗工具(ESLint、Stylelint)

一、ESLint基礎(chǔ)

// 安裝
yarn add eslint --dev
eslint --version

// 初始化一個配置.eslintrc.js
eslint --init 

// 檢查文件
eslint [文件路徑] 

 // 自動修復(fù)
eslint [文件路徑] --fix

二蛔琅、ESLint配置文件

module.exports = {
  // 瀏覽器環(huán)境, 可以設(shè)置多個,如:node: true,
  env: {
    browser: false,
    es6: false
  },
  extends: [
    // 繼承其他規(guī)則峻呛,/node-modules/eslint-config-standard包中
    'standard'
  ],
  // 只語法檢查, 不檢查es+新對象是否可用
  parserOptions: {
    ecmaVersion: 2015
  },
  rules: {
    // 0=off, 1=warn, 2=error
    // 使用數(shù)字或者字符串都可以
    'no-alert': "error"
  },
  globals: {
    // 全局注冊一個jQuery只讀變量
    "jQuery": "readonly"
  }
}

image.png

三罗售、ESLint 配置注釋

eslint-disable-line標(biāo)識不處理
ESLint規(guī)則

// 添加eslint-disable-line標(biāo)識不處理這行錯誤
// 添加no-template-curly-in-string 標(biāo)識代表不處理這個指定的錯誤
const str1 = "${name} is a coder" // eslint-disable-line no-template-curly-in-string 

四、ESLint結(jié)合gulp

// gulp-eslint

// gulpfile.js
const script = () => {
  return src('src/assets/scripts/*.js', { base: 'src' })
    // 對源代碼檢查
    .pipe(plugins.eslint())
    // 格式輸出
    .pipe(plugins.eslint.format())
    // 發(fā)現(xiàn)問題立即停止
    .pipe(plugins.eslint.failAfterError())
    .pipe(plugins.babel({ presets: ['@babel/preset-env'] }))
    .pipe(dest('temp'))
    .pipe(bs.reload({ stream: true }))
}

四钩述、ESLint結(jié)合webpack

針對React沒有使用的報錯寨躁, 需要使用eslint-plugin-react
error 'React' is defined but never used

  // 1
  rules: {
    // 2代表error
    // 避免定義了React,但是沒有使用的報錯
    "react/jsx-uses-react": 2,
    "react/jsx-uses-vars": 2
  },
   plugins: [
     // eslint-plugin-react
     'react'
   ]

// 2
  extends: [
    'standard',
    // 共享配置
    // eslint-plugin-react提交了2個共享配置牙勘,all 和 recommended
    'plugin:react/recommended'
  ],

五职恳、ESLint結(jié)合ts

需要配置語法解析器
parser: '@typescript-eslint/parser'

六、Stylelint-校驗CSS的工具

// 命令
yarn stylelint [文件名]

// .stylelintrc.js
module.exports = {
  extends: [
    // 共享配置, 需要完整的名字
    "stylelint-config-standard",
    // sass代碼
    "stylelint-config-sass-guidelines"
  ]
}

七方面、prettier-校驗所有文件工具

// 默認(rèn)會把校驗后的信息打印在控制臺放钦,需要使用write進(jìn)行文件寫入
prettier [文件名] --write
 // . 代表所有文件
prettier . --write

八、git hooks

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末恭金,一起剝皮案震驚了整個濱河市操禀,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌蔚叨,老刑警劉巖床蜘,帶你破解...
    沈念sama閱讀 218,284評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異蔑水,居然都是意外死亡邢锯,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,115評論 3 395
  • 文/潘曉璐 我一進(jìn)店門搀别,熙熙樓的掌柜王于貴愁眉苦臉地迎上來丹擎,“玉大人,你說我怎么就攤上這事歇父〉倥啵” “怎么了?”我有些...
    開封第一講書人閱讀 164,614評論 0 354
  • 文/不壞的土叔 我叫張陵榜苫,是天一觀的道長护戳。 經(jīng)常有香客問我,道長垂睬,這世上最難降的妖魔是什么媳荒? 我笑而不...
    開封第一講書人閱讀 58,671評論 1 293
  • 正文 為了忘掉前任抗悍,我火速辦了婚禮,結(jié)果婚禮上钳枕,老公的妹妹穿的比我還像新娘缴渊。我一直安慰自己,他們只是感情好鱼炒,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,699評論 6 392
  • 文/花漫 我一把揭開白布衔沼。 她就那樣靜靜地躺著,像睡著了一般昔瞧。 火紅的嫁衣襯著肌膚如雪指蚁。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,562評論 1 305
  • 那天硬爆,我揣著相機(jī)與錄音欣舵,去河邊找鬼。 笑死缀磕,一個胖子當(dāng)著我的面吹牛缘圈,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播袜蚕,決...
    沈念sama閱讀 40,309評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼糟把,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了牲剃?” 一聲冷哼從身側(cè)響起遣疯,我...
    開封第一講書人閱讀 39,223評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎凿傅,沒想到半個月后缠犀,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,668評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡聪舒,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,859評論 3 336
  • 正文 我和宋清朗相戀三年辨液,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片箱残。...
    茶點(diǎn)故事閱讀 39,981評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡滔迈,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出被辑,到底是詐尸還是另有隱情燎悍,我是刑警寧澤,帶...
    沈念sama閱讀 35,705評論 5 347
  • 正文 年R本政府宣布盼理,位于F島的核電站谈山,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏宏怔。R本人自食惡果不足惜奏路,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,310評論 3 330
  • 文/蒙蒙 一抗蠢、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧思劳,春花似錦、人聲如沸妨猩。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,904評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽壶硅。三九已至威兜,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間庐椒,已是汗流浹背椒舵。 一陣腳步聲響...
    開封第一講書人閱讀 33,023評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留约谈,地道東北人笔宿。 一個月前我還...
    沈念sama閱讀 48,146評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像棱诱,于是被迫代替她去往敵國和親泼橘。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,933評論 2 355

推薦閱讀更多精彩內(nèi)容