亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

命令行CLI一鍵生成各種煩人的lint配置實(shí)例

 更新時(shí)間:2023年02月24日 08:59:01   作者:李瑞豐_liruifengv  
這篇文章主要為大家介紹了命令行CLI一鍵生成各種煩人的lint配置實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

前言

寫一個(gè)前端工程,要配置特別多的配置文件,大量的配置文件讓我們很煩心,占用了大量寫代碼的時(shí)間。

就像上圖,看著就頭大。

每次要啟動一個(gè)新的項(xiàng)目,都要從頭配一遍。有人可能把這些文件當(dāng)做模板保存下來,有需要的時(shí)候再復(fù)制粘貼??墒歉鱾€(gè)項(xiàng)目還是不盡相同,還是需要手動改動。

于是我決定寫一個(gè)命令行工具來解決這件事。

create-lint-config

這個(gè)工具叫做 create-lint-config,一個(gè)一鍵創(chuàng)建所有的 lint 配置的 CLI 命令行工具。前端工程中特別多的配置文件例如 Eslint、Prettier 等讓我們心煩意亂。我們的目標(biāo)是快速而輕松地生成這些配置!

github 地址

npm 地址

使用

在你的項(xiàng)目根目錄執(zhí)行以下命令:

# npm
npm create lint-config@latest
# yarn
yarn create lint-config
# pnpm
pnpm create lint-config@latest

執(zhí)行結(jié)果如下:

這個(gè)命令,一次執(zhí)行,創(chuàng)建了 Eslint、StyleLint、prettier、commitlint、husy、lint-staged 等所有配置文件。

現(xiàn)有功能

  • 生成 Eslint 配置。
  • 生成 prettier 配置。
  • 生成 stylelint 配置。
  • 生成 husky 配置。
  • 生成 commitlint 配置。
  • 自動安裝依賴。
  • 期待更多。

源碼解讀

#!/usr/bin/env node
async function install({ pkgManager, cwd, _arguments }: { pkgManager: string; cwd: string; arguments: array }) {}
async function init() {
  // 拷貝配置文件基礎(chǔ)模板,包括 Eslint、StyleLint、prettier、commitlint、husy、lint-staged
  await spinner({
    start: `Base template copying...`,
    end: 'Template copied',
    while: () => {
      try {
        copy('base')
      } catch (e) {
        error('error', e)
        process.exit(1)
      }
    },
  })
  // 安裝 husky
  await spinner({
    start: `Husky installing...`,
    end: 'Husky installed',
    while: () =>
      install({
        cwd: process.cwd(),
        pkgManager: 'npx',
        _arguments: ['husky', 'install'],
      }).catch((e) => {
        error('error', e)
        process.exit(1)
      }),
  })
  // husky 寫入 commit-msg 校驗(yàn)指令,使用 commitlint
  await spinner({
    start: `Adding commit-msg lint...`,
    end: 'Commit-msg lint added',
    while: () =>
      install({
        cwd: process.cwd(),
        pkgManager: 'npx',
        _arguments: ['husky', 'add', '.husky/commit-msg', 'npx --no-install commitlint --edit ""'],
      }).catch((e) => {
        error('error', e)
        process.exit(1)
      }),
  })
  // husky 寫入 pre-commit校驗(yàn)指令,使用 lint-staged 執(zhí)行 elint 等
  await spinner({
    start: `Adding lint-staged...`,
    end: 'Lint-staged added',
    while: () =>
      install({
        cwd: process.cwd(),
        pkgManager: 'npx',
        _arguments: ['husky', 'add', '.husky/pre-commit', 'npx lint-staged'],
      }).catch((e) => {
        error('error', e)
        process.exit(1)
      }),
  })
  // 安裝依賴
  await spinner({
    start: `Dependencies installing with npm...`,
    end: 'Dependencies installed',
    while: () =>
      install({
        cwd: process.cwd(),
        pkgManager: 'npm',
        _arguments: ['install'],
      }).catch((e) => {
        error('error', e)
        process.exit(1)
      }),
  })
}
init().catch((e) => {
  console.error(e)
})

更多源碼請移步 GitHub 查看

TODO

  • 支持通過--template標(biāo)志來選擇模板,創(chuàng)建更多的配置文件模板,包括 ts、vue、react、node 等等
  • 支持更靈活的交互式選項(xiàng)?,F(xiàn)在只能一鍵生成默認(rèn)的模板,有些配置可能是一些人不需要的,后續(xù)計(jì)劃可以更靈活。

總結(jié)

這個(gè)包還在起步階段,我希望有需求的同學(xué)可以來參與貢獻(xiàn)。

  • 你可以貢獻(xiàn) feature
  • 提交你自己正在使用的模板,以后用這個(gè)工具一鍵生成
  • 你也可以 fork 或 clone 此項(xiàng)目,變成你自己的命令行工具
  • 你也可以發(fā)布到你們公司的私有 npm,今年的 KPI 不就有了么

github 地址

npm 地址

以上就是命令行CLI一鍵生成各種煩人的lint配置實(shí)例的詳細(xì)內(nèi)容,更多關(guān)于命令行CLI一鍵生成lint配置的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Vue開發(fā)環(huán)境跨域訪問問題

    Vue開發(fā)環(huán)境跨域訪問問題

    這篇文章主要介紹了Vue開發(fā)環(huán)境跨域訪問問題,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-01-01
  • 詳解vuex中mutation/action的傳參方式

    詳解vuex中mutation/action的傳參方式

    這篇文章主要介紹了詳解vuex中mutation/action的傳參方式,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-08-08
  • 用Vue封裝導(dǎo)航欄組件

    用Vue封裝導(dǎo)航欄組件

    這篇文章主要為大家詳細(xì)介紹了用Vue封裝導(dǎo)航欄組件的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • vue-cli3項(xiàng)目生產(chǎn)和測試環(huán)境分包后文件名和數(shù)量不一致解決

    vue-cli3項(xiàng)目生產(chǎn)和測試環(huán)境分包后文件名和數(shù)量不一致解決

    這篇文章主要為大家介紹了vue-cli3項(xiàng)目生產(chǎn)和測試環(huán)境分包后文件名和數(shù)量不一致解決方法,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-05-05
  • elementUI的table表格改變數(shù)據(jù)不更新問題解決

    elementUI的table表格改變數(shù)據(jù)不更新問題解決

    最近在做vue的項(xiàng)目時(shí)發(fā)現(xiàn)了一個(gè)問題,今天就來解決一下,本文主要介紹了elementUI的table表格改變數(shù)據(jù)不更新問題解決,感興趣的可以了解一下
    2022-02-02
  • 詳解Vue.js動態(tài)綁定class

    詳解Vue.js動態(tài)綁定class

    Vue.js的核心是一個(gè)響應(yīng)的數(shù)據(jù)綁定系統(tǒng),它允許我們在普通 HTML 模板中使用特殊的語法將 DOM “綁定”到底層數(shù)據(jù)。被綁定的DOM 將與數(shù)據(jù)保持同步,每當(dāng)數(shù)據(jù)有改動,相應(yīng)的DOM視圖也會更新?;谶@種特性,通過vue.js動態(tài)綁定class就變得非常簡單。一起來看下吧
    2016-12-12
  • uniapp和vue的區(qū)別詳解

    uniapp和vue的區(qū)別詳解

    這篇文章主要介紹了uniapp和vue的區(qū)別,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-10-10
  • vue3.0中的雙向數(shù)據(jù)綁定方法及優(yōu)缺點(diǎn)

    vue3.0中的雙向數(shù)據(jù)綁定方法及優(yōu)缺點(diǎn)

    這篇文章主要介紹了vue3.0中的雙向數(shù)據(jù)綁定方法 ,文中通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-08-08
  • vuejs移動端實(shí)現(xiàn)div拖拽移動

    vuejs移動端實(shí)現(xiàn)div拖拽移動

    這篇文章主要為大家詳細(xì)介紹了vuejs移動端實(shí)現(xiàn)div拖拽移動,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-07-07
  • Vue學(xué)習(xí)筆記進(jìn)階篇之vue-router安裝及使用方法

    Vue學(xué)習(xí)筆記進(jìn)階篇之vue-router安裝及使用方法

    本篇文章主要介紹了Vue學(xué)習(xí)筆記進(jìn)階篇之vue-router安裝及使用方法,具有一定的參考價(jià)值,有興趣的可以了解一下
    2017-07-07

最新評論