vue?eslint報(bào)錯(cuò):Component?name?“xxxxx“?should?always?be?multi-word.eslintvue的4種解決方案
報(bào)錯(cuò)代碼
vue-cli全新創(chuàng)建項(xiàng)目,并建立組件時(shí)提示報(bào)錯(cuò),報(bào)錯(cuò)如下:
vscode標(biāo)紅提示:
Component name "index" should always be multi-word.eslintvue/multi-word-component-names
npm run serve / yarn serve報(bào)錯(cuò):
ERROR Failed to compile with 1 error 下午6:02:08
C:\Users\wally\Desktop\vscode\vue\seal\seal_web\src\views\home\index.vue
1:1 error Component name "index" should always be multi-word vue/multi-word-component-names? 1 problem (1 error, 0 warnings)
You may use special comments to disable some warnings.
Use // eslint-disable-next-line to ignore the next line.
Use /* eslint-disable */ to ignore all warnings in a file.
ERROR in
C:\Users\wally\Desktop\vscode\vue\seal\seal_web\src\views\home\index.vue
1:1 error Component name "index" should always be multi-word vue/multi-word-component-names? 1 problem (1 error, 0 warnings)
webpack compiled with 1 error
原因
新手在組件命名的時(shí)候不夠規(guī)范,根據(jù)官方風(fēng)格指南,除了根組件(App.vue)外,自定義組件名稱應(yīng)該由多單詞組成,防止和html標(biāo)簽沖突。
而最新的vue-cli創(chuàng)建的項(xiàng)目使用了最新的vue/cli-plugin-eslint插件,在vue/cli-plugin-eslint v7.20.0版本之后就引用了vue/multi-word-component-names規(guī)則,所以在編譯的時(shí)候判定此次錯(cuò)誤。
解決方案
方案一
改名
修改組件名為多個(gè)單詞,使用大駝峰命名方式或者用“-”連接單詞。但是有時(shí)候因?yàn)閭€(gè)別原因不能改名,此方案不好使,看下面兩個(gè)方案。
方案二:
關(guān)閉校驗(yàn)
在根目錄下找到vue.config.js文件(如果沒有則新建一個(gè)),添加下面的代碼
lintOnSave: false
添加后文件示例:
const { defineConfig } = require('@vue/cli-service')
module.exports = defineConfig({
transpileDependencies: true,
//關(guān)閉eslint校驗(yàn)
lintOnSave: false
})
此方案治標(biāo)不治本,只是編譯時(shí)不報(bào)錯(cuò),如果使用vscode+eslint 會在文件頭標(biāo)紅提示,強(qiáng)迫癥根本忍受不了,并且官方并不建議直接關(guān)閉校驗(yàn),所以推薦使用方案三
方案三(推薦)
關(guān)閉命名規(guī)則校驗(yàn)
在根目錄下找到 .eslintrc.js 文件,同樣如果沒有則新建一個(gè)(注意文件前有個(gè)點(diǎn)),代碼如下
添加一行:
"vue/multi-word-component-names":"off",
文件內(nèi)容:
module.exports = {
root: true,
env: {
node: true
},
'extends': [
'plugin:vue/essential',
'eslint:recommended'
],
parserOptions: {
parser: '@babel/eslint-parser'
},
rules: {
'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
'no-debugger': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
//在rules中添加自定義規(guī)則
//關(guān)閉組件命名規(guī)則
"vue/multi-word-component-names":"off",
},
overrides: [
{
files: [
'**/__tests__/*.{j,t}s?(x)',
'**/tests/unit/**/*.spec.{j,t}s?(x)'
],
env: {
jest: true
}
}
]
}以上是關(guān)閉命名規(guī)則,將不會校驗(yàn)組件名,官方建議設(shè)置是根據(jù)組件名進(jìn)行忽略
忽略個(gè)別組件名
// 添加組件命名忽略規(guī)則
"vue/multi-word-component-names": ["error",{
"ignores": ["index"]//需要忽略的組件名
}]
方案四(推薦):
方案三是關(guān)閉和忽略組件名規(guī)則,但是有時(shí)候還是需要團(tuán)隊(duì)有個(gè)共同規(guī)范,不能關(guān)閉,同時(shí)文件名可能和組件名不一致時(shí),例如我需要每個(gè)頁面入口為index.vue,但是組件名為MyHome,用忽略組件名的方式可能需要同時(shí)添加index和MyHome,就顯得很傻瓜。或者我需要路由組件忽略,非路由組件不忽略,那如何在這種情況下修改規(guī)則更好用呢?因此我找到了第四種方式。方案三是根據(jù)組件名忽略,此方案是根據(jù)文件進(jìn)行關(guān)閉規(guī)則,更適用。
關(guān)閉某文件命名規(guī)則校驗(yàn)
在根目錄下找到 .eslintrc.js 文件,同樣如果沒有則新建一個(gè)(注意文件前有個(gè)點(diǎn)),代碼如下
在文件的overrides中添加如下代碼:
{
files: ['src/views/index.vue','src/views/**/index.vue'], // 匹配views和二級目錄中的index.vue
rules: {
'vue/multi-word-component-names':"off",
} //給上面匹配的文件指定規(guī)則
}
其中的 files: [] 是用于匹配文件的,*號代表所有文件。index.vue也可以改成 *.vue,這就是匹配目錄下的所有vue文件
文件內(nèi)容:
module.exports = {
root: true,
env: {
node: true
},
'extends': [
'plugin:vue/essential',
'eslint:recommended'
],
parserOptions: {
parser: '@babel/eslint-parser'
},
rules: {
'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
'no-debugger': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
},
overrides: [
//這里是添加的代碼
{
files: ['src/views/index.vue','src/views/**/index.vue'], // 匹配views和二級目錄中的index.vue
rules: {
'vue/multi-word-component-names':"off",
} //給上面匹配的文件指定規(guī)則
},
{
files: [
'**/__tests__/*.{j,t}s?(x)',
'**/tests/unit/**/*.spec.{j,t}s?(x)'
],
env: {
jest: true
}
}
]
}其實(shí)和方案三基本一致,只是放的位置不同
總結(jié)
到此這篇關(guān)于vue eslint報(bào)錯(cuò):Component name “xxxxx“ should always be multi-word.eslintvue的4種解決方案的文章就介紹到這了,更多相關(guān)vue eslint報(bào)錯(cuò)解決內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Vue3配置路由ERROR in [eslint]報(bào)錯(cuò)問題及解決
- vue?eslint報(bào)錯(cuò)error?"Component?name?"*****"?should?always?be?multi-word"解決
- vue-cli創(chuàng)建項(xiàng)目時(shí)由esLint校驗(yàn)導(dǎo)致報(bào)錯(cuò)或警告的問題及解決
- vue關(guān)于eslint空格縮進(jìn)等的報(bào)錯(cuò)問題及解決
- vue?cli2?和?cli3去掉eslint檢查器報(bào)錯(cuò)的解決
- vue項(xiàng)目下,如何用命令直接修復(fù)ESLint報(bào)錯(cuò)
- vue中eslint導(dǎo)致的報(bào)錯(cuò)問題及解決
相關(guān)文章
Vue+webpack實(shí)現(xiàn)懶加載過程解析
這篇文章主要介紹了Vue+webpack實(shí)現(xiàn)懶加載過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-02-02
Vue實(shí)現(xiàn)具備掃描和查看數(shù)據(jù)的二維碼
在我們生活中,二維碼的應(yīng)用越來越廣泛,特別是在移動互聯(lián)網(wǎng)的時(shí)代,二維碼成為了快速傳達(dá)信息的一種利器,本文我們就來看看如何在Vue框架下,實(shí)現(xiàn)一個(gè)具備掃描和查看數(shù)據(jù)的二維碼吧2023-05-05
如何解決ElementUI導(dǎo)航欄重復(fù)點(diǎn)菜單報(bào)錯(cuò)問題
這篇文章主要介紹了如何解決ElementUI導(dǎo)航欄重復(fù)點(diǎn)菜單報(bào)錯(cuò)問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-07-07
Vue實(shí)現(xiàn)可復(fù)用輪播組件的方法
這篇文章主要為大家詳細(xì)介紹了Vue實(shí)現(xiàn)可復(fù)用輪播組件的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-07-07
vue如何使用watch監(jiān)聽指定數(shù)據(jù)的變化
這篇文章主要介紹了vue如何使用watch監(jiān)聽指定數(shù)據(jù)的變化,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-04-04
Vue獲取當(dāng)前系統(tǒng)日期(年月日)的示例代碼
發(fā)中會有要獲取當(dāng)前日期的需求,有的是獲取到當(dāng)前月份,有的是精確到分秒,在 Vue 開發(fā)中,獲取當(dāng)前時(shí)間是一項(xiàng)常見的需求,本文將深入探討Vue獲取當(dāng)前系統(tǒng)日期(年月日),幫助您更好地利用當(dāng)前時(shí)間,需要的朋友可以參考下2024-01-01

