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

Vue項(xiàng)目中使用flow做類型檢測(cè)的方法

 更新時(shí)間:2020年03月18日 15:09:33   作者:下次我請(qǐng)  
這篇文章主要介紹了Vue項(xiàng)目中使用flow做類型檢測(cè)的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

在vue2.0的項(xiàng)目中加入flow類型檢查。當(dāng)前項(xiàng)目是用js寫的,當(dāng)項(xiàng)目越來越大,由于js弱類型的特性,相比ts(typescript)這種強(qiáng)類型的語言而言,后期維護(hù)會(huì)越來越困難。為了解決這個(gè)問題,決定使用flow 加入類型檢查。

flow了解

flow是fackbook公布的javascript靜態(tài)類型檢查器。 可以檢查js中一些bug,eg:自動(dòng)類型轉(zhuǎn)換中出現(xiàn)的問題。flow官網(wǎng)

首先,安裝flow

npm i flow-bin --save-dev

然后在package.json中添加腳本

"scripts": {
  "flow": "flow check"
 }

在項(xiàng)目根目錄下運(yùn)行命令,生成文件.flowconfig

npm run flow init

打開 .flowconfig 文件,可以看到內(nèi)容大致如下

.*/node_modules/.*
.*/test/.*
.*/build/.*
[include]
[libs]
[lints]
[options]
module.file_ext=.vue 
module.file_ext=.js
[strict]

其中在[ignore]下配置要忽略的文件,在[options]中我們可以添加
module.file_ext=.vue 這樣的配置讓flow檢測(cè)vue單文件組件

  • [ignore]:Flow 默認(rèn)檢查項(xiàng)目目錄下所有文件,但是有很多文件必定是我們不想檢查的,就像 node_modules、build 等目錄下的文件,所以我們需要在將這些目錄寫在 ignore 配置下。
  • [include]:所謂的項(xiàng)目目錄其實(shí)是 .flowconfig 目錄,并不是真正的項(xiàng)目目錄,如果我們?cè)谶@個(gè)項(xiàng)目中的某個(gè)目錄下創(chuàng)建一個(gè) .flowconfig,那么 .flowconfig 所在的目錄也會(huì)變?yōu)橐粋€(gè) Flow 項(xiàng)目。那么,如果我們想對(duì)當(dāng)前 Flow 項(xiàng)目以外的文件或者目錄進(jìn)行檢查,需要把它們寫在 include 配置項(xiàng)中。
  • [libs]:在項(xiàng)目中,我們可能會(huì)用到很多自定義的類型,比如說要記錄對(duì)象的結(jié)構(gòu),它可能在每個(gè)文件中都會(huì)被運(yùn)用到,我們將其抽取為全局的類型或數(shù)據(jù)結(jié)構(gòu),在任何文件都可以使用。為了管理方便,我們將全局類型都定義在一個(gè)或多個(gè)單純的目錄中統(tǒng)一管理。這里存放的有可能是一個(gè)定義好的數(shù)據(jù)結(jié)構(gòu),存放的也有可能是根據(jù)項(xiàng)目中某個(gè)類對(duì)應(yīng)的數(shù)據(jù)類型。我們將這些文件或目錄寫在 libs 配置項(xiàng)中,這個(gè)配置對(duì)于我們使用 Flow 來說很重要。
  • [options]:這里填寫對(duì) Flow 項(xiàng)目的一些配置,配置項(xiàng)以key=value的形式,每行寫一個(gè)。所有的配置見官方文檔
  • [lints]:官網(wǎng)中沒有提到 lints 相關(guān)的配置

然后,在需要flow進(jìn)行類型檢測(cè)的.js文件或.vue文件script標(biāo)簽內(nèi)容最頂部,加上注釋

// @flow

沒有該注釋對(duì)文件將不會(huì)進(jìn)行類型檢測(cè)

配置到到這里,我們可以運(yùn)行 npm run flow 進(jìn)行代碼到類型檢查,獲取檢查報(bào)告。

由于類型注釋不是我們ES規(guī)范的一部分,因此我們需要把使用了flow的代碼轉(zhuǎn)換成正常的js代碼,可以使用babel-preset-flow或babel-plugin-transform-flow-strip-types來移除它。

安裝flow相關(guān)的flow插件:
babel-cli: babel-cli腳手架
babel-preset-flow: 用于編譯前去除代碼中的類型聲明
babel-plugin-transform-flow-strip-types 同上,而選一

npm install --save-dev babel-cli babel-preset-flow

安裝完后,在項(xiàng)目根目錄的.babelrc文件(無則創(chuàng)建)里添加如下內(nèi)容

{
 "presets": [
  ["env", {
   "modules": false,
   "targets": {
    "browsers": ["> 1%", "last 2 versions", "not ie <= 8"]
   }
  }],
  "stage-2",
  "flow"
 ],
 "plugins": [
  //"babel-plugin-transform-flow-strip-types"
 ]
}

如果想要在代碼中實(shí)時(shí)看到flow類型檢查的錯(cuò)誤,需要安裝eslint插件

npm i eslint-plugin-flowtype-errors --save-dev

然后在.eslintrc文件中添加配置:

 {
 plugins: [
  'flowtype-errors'
 ],
 rules: {
  "flowtype-errors/show-errors": 2
 }
}

PS:在vscode中進(jìn)行類型聲明時(shí)可能會(huì)報(bào)"類型聲明只能在.ts文件中使用"的錯(cuò)誤,這時(shí)候找到setting,搜索javascript.validate,將其禁用即可

參考文章:Writing Vue.js Components with Flow

到此這篇關(guān)于Vue項(xiàng)目中使用flow做類型檢測(cè)的方法的文章就介紹到這了,更多相關(guān)Vue flow 類型檢測(cè)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家! 

相關(guān)文章

  • vue3中nextTick()應(yīng)用實(shí)例詳解

    vue3中nextTick()應(yīng)用實(shí)例詳解

    這篇文章主要給大家介紹了關(guān)于vue3中nextTick()應(yīng)用的相關(guān)資料,nextTick()等待下一次DOM更新刷新的工具方法,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-12-12
  • 實(shí)現(xiàn)Vue的markdown文檔可以在線運(yùn)行的方法示例

    實(shí)現(xiàn)Vue的markdown文檔可以在線運(yùn)行的方法示例

    這篇文章主要介紹了實(shí)現(xiàn)Vue的markdown文檔可以在線運(yùn)行的方法示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-12-12
  • Vue實(shí)現(xiàn)上下層疊輪播圖

    Vue實(shí)現(xiàn)上下層疊輪播圖

    這篇文章主要介紹了Vue實(shí)現(xiàn)上下層疊輪播圖,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • Vue面試必備之防抖和節(jié)流的使用

    Vue面試必備之防抖和節(jié)流的使用

    在這篇文章中,大家會(huì)了解到如何在 Vue 組件中使用防抖和節(jié)流控制 觀察者(watchers)以及事件處理程序,文中的示例代碼簡(jiǎn)潔易懂,希望對(duì)大家有所幫助
    2023-03-03
  • 淺談Vue static 靜態(tài)資源路徑 和 style問題

    淺談Vue static 靜態(tài)資源路徑 和 style問題

    這篇文章主要介紹了淺談Vue static 靜態(tài)資源路徑 和 style問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11
  • Vue3實(shí)現(xiàn)全局loading指令的示例詳解

    Vue3實(shí)現(xiàn)全局loading指令的示例詳解

    這篇文章主要介紹了Vue3實(shí)現(xiàn)全局loading指令,本文通過示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-06-06
  • vue.js+element-ui動(dòng)態(tài)配置菜單的實(shí)例

    vue.js+element-ui動(dòng)態(tài)配置菜單的實(shí)例

    今天小編就為大家分享一篇vue.js+element-ui動(dòng)態(tài)配置菜單的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-09-09
  • 對(duì)vue下點(diǎn)擊事件傳參和不傳參的區(qū)別詳解

    對(duì)vue下點(diǎn)擊事件傳參和不傳參的區(qū)別詳解

    今天小編就為大家分享一篇對(duì)vue下點(diǎn)擊事件傳參和不傳參的區(qū)別詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-09-09
  • Vue中避免濫用this去讀取data中數(shù)據(jù)

    Vue中避免濫用this去讀取data中數(shù)據(jù)

    這篇文章主要介紹了Vue中避免濫用this去讀取data中數(shù)據(jù)的的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)使用vue框架,感興趣的朋友可以了解下
    2021-03-03
  • Vue快速實(shí)現(xiàn)通用表單驗(yàn)證功能

    Vue快速實(shí)現(xiàn)通用表單驗(yàn)證功能

    這篇文章主要介紹了Vue快速實(shí)現(xiàn)通用表單驗(yàn)證功能,本文通過一個(gè)小例子給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-12-12

最新評(píng)論