最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

ESLint 是如何檢查 .vue 文件的

 更新時間:2020年11月30日 09:28:39   作者:梅旭光  
這篇文章主要介紹了ESLint 是如何檢查 .vue 文件的,幫助大家更好的理解和使用ESLINT,感興趣的朋友可以了解下

近期要做一個類似的內(nèi)容,學(xué)習(xí)了一下 Vue 是如何做的。

ESLint 中的擴(kuò)展機(jī)制

首先需要了解一下如何才能擴(kuò)展 ESLint 的功能。ESLint 擴(kuò)展機(jī)制主要有 Rules、Plugins、Formatters、Parsers,F(xiàn)ormatters 目前不需要用到,因此著重看一下其他三種方式。

Parser

用于自定義的解析文件內(nèi)容,返回 AST 給后續(xù)步驟使用。

Rules

用于定義校驗規(guī)則。

Plugins

plugin 是多種功能的一個集合,可以定義以下內(nèi)容:

  • Rules:校驗規(guī)則。
  • Environments:環(huán)境變量。
  • Processors:處理文件前后的鉤子函數(shù)。preprocess、postprocess。
  • Configs:一些預(yù)置的配置,可以讓用戶指定使用。

Vue 相關(guān)代碼庫

用于 .vue 文件的 eslint 代碼庫有兩個:eslint-plugin-vuevue-eslint-parser。

eslint-plugin-vue 用于提供 Rules。

vue-eslint-parser 用于解析 .vue 文件,尤其是 template 部分。

eslint-plugin-vue

入口文件為 lib/index.js,其中設(shè)置了三部分內(nèi)容,rules、configs 和 processors。

rules

rules 部分對應(yīng)著非常多的校驗規(guī)則,放在 rules 目錄下。rules 中關(guān)于 template 部分的校驗,處理的是 vue-eslint-parser 中生成的 AST,這個 AST 的格式定義可以在這里查看:https://github.com/vuejs/vue-eslint-parser/blob/master/docs/ast.md

configs

configs 部分預(yù)置了很多配置選項,不同選項的區(qū)別主要在于 rules 的開關(guān)設(shè)置不同,我們不需要關(guān)心。這里我們主要看 base 配置中的 parser 部分:

parser 制定為了 vue-eslint-parser,這就是為什么我們不用手動裝 vue-eslint-parser,而只需要安裝 eslint-plugin-vue 的原因。

processors

最后一部分是 processors,他是一個對象:

其中 preprocess 沒有做任何事情,直接將 code 返回了。

有時文件中會有一些注釋來開啟關(guān)閉某些 rules,而 postprocess 所做的內(nèi)容是根據(jù)這些注釋對 messages 做一個過濾。

vue-eslint-parser

vue-eslint-parser 的入口文件是 src/index.ts,該文件暴露出了 parseForESLint 和 parse 方法,這兩個方法做的事情是一樣的:輸入原始代碼,返回解析后的 AST。

由于配置 parser 后,所有文件都會經(jīng)過 vue-eslint-parser,因此需要判斷是否是 .vue 文件,如果不是的話,使用 espree (ESLint 默認(rèn)的 JS 解析器) 或用戶自定義的其他 parser 來處理 js 文件內(nèi)容。

如果判斷是 vue 文件,那么會對 HTMLParser 來解析 .vue 文件內(nèi)容,獲取到 script 和 template 部分。script 部分使用 espree 或用戶自定義的其他 parser 來處理 js 內(nèi)容,template 部分則已經(jīng)由 HTMLParser 解析過了,直接使用即可。

總體流程

最后是總體的流程:

以上就是ESLint 是如何檢查 .vue 文件的的詳細(xì)內(nèi)容,更多關(guān)于ESLint 檢測.vue文件的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 使用elementUI table展開行內(nèi)嵌套table問題

    使用elementUI table展開行內(nèi)嵌套table問題

    這篇文章主要介紹了使用elementUI table展開行內(nèi)嵌套table問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • vue如何實現(xiàn)無縫輪播圖

    vue如何實現(xiàn)無縫輪播圖

    這篇文章主要介紹了vue如何實現(xiàn)無縫輪播圖,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • Vue路由傳參props解耦的三種方式小結(jié)

    Vue路由傳參props解耦的三種方式小結(jié)

    這篇文章主要介紹了Vue路由傳參props解耦的三種方式小結(jié),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • 詳解Vue computed計算屬性是什么

    詳解Vue computed計算屬性是什么

    在vue中,有時候你需要對data中的數(shù)據(jù)進(jìn)行處理,或者對抓取的數(shù)據(jù)進(jìn)行處理之后再掛載呈現(xiàn)到標(biāo)簽中,這時候你就需要計算屬性了,當(dāng)然看到這里你可能還是不了解那下面我舉幾個實例并附代碼解釋
    2023-03-03
  • VUEX 數(shù)據(jù)持久化,刷新后重新獲取的例子

    VUEX 數(shù)據(jù)持久化,刷新后重新獲取的例子

    今天小編就為大家分享一篇VUEX 數(shù)據(jù)持久化,刷新后重新獲取的例子,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • 一篇文章告訴你如何編寫Vue插件

    一篇文章告訴你如何編寫Vue插件

    這篇文章主要為大家介紹了如何編寫Vue插件,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-11-11
  • 解決vue中無法動態(tài)修改jqgrid組件 url地址的問題

    解決vue中無法動態(tài)修改jqgrid組件 url地址的問題

    下面小編就為大家分享一篇解決vue中無法動態(tài)修改jqgrid組件 url地址的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-03-03
  • 使用Vuex解決Vue中的身份驗證問題

    使用Vuex解決Vue中的身份驗證問題

    這篇文章主要介紹了使用Vuex解決Vue中的身份驗證問題,本文通過文字實例相結(jié)合給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友參考下吧
    2018-09-09
  • Vue利用Mixin輕松實現(xiàn)代碼復(fù)用

    Vue利用Mixin輕松實現(xiàn)代碼復(fù)用

    Mixin,中文翻譯為"混入",在Vue中是一種非常有用的功能,可以解決許多開發(fā)中的常見問題,下面就讓我們一起深入了解一下Mixin在Vue中解決了哪些問題吧
    2023-06-06
  • Vs-code/WebStorm中構(gòu)建Vue項目的實現(xiàn)步驟

    Vs-code/WebStorm中構(gòu)建Vue項目的實現(xiàn)步驟

    本文主要介紹了在Vs-code/WebStorm中構(gòu)建Vue項目,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08

最新評論

方正县| 沈阳市| 禄丰县| 蒲城县| 财经| 旅游| 涟源市| 砀山县| 丰宁| 云梦县| 石景山区| 吴江市| 什邡市| 延庆县| 临朐县| 乌兰浩特市| 芦溪县| 祁连县| 福州市| 福海县| 济宁市| 望都县| 安陆市| 临猗县| 安远县| 仁布县| 葫芦岛市| 佛坪县| 东至县| 江安县| 乌兰县| 翁牛特旗| 宁陵县| 中卫市| 台湾省| 蛟河市| 铁力市| 肥东县| 青川县| 桃源县| 襄樊市|